事象内容

コントローラーノードで以下コマンドを実行しサービスコンポーネントを一覧表示すると、nova-consoleauth のサービスコンポーネントが一覧に表示されない。

[root@controller ~]# openstack compute service list
+----+----------------+------------+----------+---------+-------+----------------------------+
| ID | Binary         | Host       | Zone     | Status  | State | Updated At                 |
+----+----------------+------------+----------+---------+-------+----------------------------+
|  1 | nova-scheduler | controller | internal | enabled | up    | 2018-10-21T03:49:43.000000 |
|  3 | nova-conductor | controller | internal | enabled | up    | 2018-10-21T03:49:43.000000 |
|  6 | nova-compute   | compute1   | nova     | enabled | up    | 2018-10-21T03:49:40.000000 |
+----+----------------+------------+----------+---------+-------+----------------------------+
[root@controller ~]# 

解決方法

インスタンスへの VNC アクセスをホストするノードは、ファイアウォールを介した VNC トラフィックを許可するように設定する必要があります。表示されない場合は、コントローラーノードのファイアウォールで必要となる通信が許可されてない可能性がある。デフォルトでは、openstack-nova-novncproxy サービスは TCP ポート 6080 をリッスンし、openstack-nova-xvpncproxy サービスは TCP ポート 6081 をリッスンするため、これら通信をコントローラーノードのファイアウォールで許可する。

コントローラーノードのfirewalld で、現在許可されているポート番号を確認する。

[root@controller ~]# firewall-cmd --list-port --zone=public --permanent
5000/tcp 5672/tcp 8778/tcp
[root@controller ~]# 

firewalld で、TCP 6080 と 6081 ポート番号を許可する。

[root@controller ~]# firewall-cmd --add-port=6080/tcp --zone=public --permanent
success
[root@controller ~]# 

[root@controller ~]# firewall-cmd --add-port=6081/tcp --zone=public --permanent
success
[root@controller ~]# 

firewalld で、TCP 6080 と 6081 ポート番号が許可されていることを確認する。

[root@controller ~]# firewall-cmd --list-port --zone=public --permanent
5000/tcp 5672/tcp 8778/tcp 6080/tcp 6081/tcp
[root@controller ~]# 

firewalld をリロードし、設定を反映する。

[root@controller ~]# firewall-cmd --reload
success
[root@controller ~]#