티스토리 뷰

spice console

Jacob_baek 2017. 6. 19. 17:37

VNC 혹은 SPICE HTML5는 OpenStack Dashboard 혹은 command line 사용하여 Guest OS에 remote desktop을 접근할수 있다. 이는 token 인증 관리를 수행하는 nova-consoleauth라 불리는 공유된 서비스를 통해 접근할 수 있다. 이중 spice console을 사용하는 방법에 대해 알아보자.


Spice Console을 사용하는 방법

기본으로 VNC로 console이 설정되어 있다. vnc의 경우 사실 많이 느리고 연결성이 떨어진다.

Spice 로 변경하는 방법을 알아보자. 


기본적으로 미설치되어 있는 패키지 설치를 한다.


# controller && compute

yum install openstack-nova-spicehtml5proxy -y

yum install http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-9.noarch.rpm -y

yum install spice-html5 -y


패키지가 설치되면 각 노드에 설정을 수행한다.


설정전 가정사항은 

- controller node ip : 10.2.2.109 (horizon dashboard ip) / 10.2.3.18 (internal ip)

- compute node ip : 10.2.3.17


# Controller Node

[default]

web=/usr/share/spice-html5

[spice]

enabled=true

agent_enabled=true
html5proxy_base_url=http://127.0.0.1:6082/spice_auto.html
keymap=en-us
html5proxy_host=0.0.0.0
html5proxy_port=6082

아래와 iptables 등록을 해야 한다.

iptables -I INPUT -p tcp -m multiport --dports 6082 -m comment --comment "using spice console" -j ACCEPT


# Compute Node

[default]

web=/usr/share/spice-html5

[spice]

enabled=true

agent_enabled=true
html5proxy_base_url=http://10.2.2.109:6082/spice_auto.html
server_listen=10.2.3.17
server_proxyclient_address=10.2.3.17
keymap=en-us

이후 아래의 서비스를 재구동한다.

# Controller

systemctl restart openstack-nova-spicehtml5proxy

systemctl enable openstack-nova-spicehtml5proxy


# compute

systemctl restart openstack-nova-compute


확인작업

실제로 다음과 같은 서비스가 동작중이어야 한다.

Controller는 아래와 같이 6082로 서비스가 되고 있어야 하고 

[root@overcloud-controller-0 heat-admin]# netstat -tnlp | grep 608

tcp        0      0 10.2.3.18:6080          0.0.0.0:*               LISTEN      199681/haproxy

tcp        0      0 10.2.2.109:6080         0.0.0.0:*               LISTEN      199681/haproxy

tcp        0      0 10.2.3.19:6080          0.0.0.0:*               LISTEN      2077/python2

tcp        0      0 0.0.0.0:6082            0.0.0.0:*               LISTEN      517345/python2


compute에서는 virsh edit instance_id를 해보면
    <graphics type='vnc' port='-1' autoport='yes' listen='10.2.3.17' keymap='en-us'>
      <listen type='address' address='10.2.3.17'/>
    </graphics>
    <graphics type='spice' autoport='yes' listen='10.2.3.17' keymap='en-us'>
      <listen type='address' address='10.2.3.17'/>
    </graphics>
와 같이 spice 에 대한 graphics element가 존재해야 한다.

최종적으로 아래와 같이 확인이 되어야 한다.

[stack@director11 ~]$ openstack console url show testvm-3 --spice

+-------+-----------------------------------------------------------------------------------+

| Field | Value                                                                             |

+-------+-----------------------------------------------------------------------------------+

| type  | spice-html5                                                                       |

| url   | http://10.2.2.109:6082/spice_auto.html?token=49fe3581-4a62-447a-96d0-284879384c9e |

+-------+-----------------------------------------------------------------------------------+

[stack@director11 ~]$ openstack console url show testvm-3 --novnc

+-------+---------------------------------------------------------------------------------+

| Field | Value                                                                           |

+-------+---------------------------------------------------------------------------------+

| type  | novnc                                                                           |

| url   | http://10.2.2.109:6080/vnc_auto.html?token=9401fef9-c2f4-4e7d-91b9-b3454e43e5b5 |

+-------+---------------------------------------------------------------------------------+


참고로 설정전에 만들어놓았던 VM의 경우 spice 적용이 안된다. VM을 재생성해야 한다.


최종적으로 아래와 같이 연결이 이루어진다.



TroubleShooting

만약 아래와 같이 연결이 되지 않는 경우는 

[stack@director9 ~]$ openstack console url show NAIM-DB --spice

Invalid input for field/attribute type. Value: spice. u'spice' is not one of ['spice-html5'] (HTTP 400) (Request-ID: req-b3f491c4-c36c-4f21-9362-90aad945cf55)


controller 노드에서 6082 port가 listen되는지와 연결이 되는지 확인하고
compute 노드에서 virsh tool을 이용하여 VM에 graphics에 spice가 설정되어 있는지 확인한다.


참고사이트

- http://silverskysoft.com/open-stack-xwrpr/2015/07/enable-spice-html5-console-access-in-openstack-kilo/

- https://www.slideshare.net/YukihiroKawada/rdo-spice
- https://docs.openstack.org/nova/pike/admin/remote-console-access.html

'' 카테고리의 다른 글

error about security group in use  (0) 2017.07.12
openstack client  (0) 2017.07.03
spice console  (0) 2017.06.19
error message about mysql is not running with galera  (0) 2017.06.15
no valid host error  (0) 2017.06.13
can not delete loadbalancer by pending_create state  (0) 2017.04.25
댓글
댓글쓰기 폼