事象内容

オーケストレーションサービスのコンポーネントを一覧表示しようとすると、内部エラーとなる。

[root@controller ~]# openstack orchestration service list
ERROR: Internal Error
[root@controller ~]#

HEAT の API ログ( /var/log/heat/heat-api.log )を確認すると、以下エラーメッセージが出力されている。

ConnectFailure: Unable to establish connection to http://controller:35357: HTTPConnectionPool(host=’controller’, port=35357)

[root@controller ~]# tail -F /var/log/heat/heat-api.log 
2018-11-30 22:13:12.938 19597 WARNING keystoneauth.identity.generic.base [-] Failed to discover available identity versions when contacting http://controller:35357. Attempting to parse version from URL.: ConnectFailure: Unable to establish connection to http://controller:35357: HTTPConnectionPool(host='controller', port=35357): Max retries exceeded with url: / (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f129250b450>: Failed to establish a new connection: [Errno 111] ECONNREFUSED',))
2018-11-30 22:13:12.939 19597 INFO eventlet.wsgi.server [-] 192.168.24.111 - - [30/Nov/2018 22:13:12] "GET /v1/257bcb40994f44a1b2740dba5200d6c4/services HTTP/1.1" 500 424 0.003718

解決方法

認証サービス( Keystone )への接続ポートが間違っていることが原因であるため、heat の設定ファイル( /etc/heat/heat.conf )を修正します。Openstack Rocky の認証サービス(Keystone)では、35357 ではなく 5000 番のポートを使用します。

[root@controller ~]# vi /etc/heat/heat.conf 
[keystone_authtoken]
...
auth_uri = http://controller:5000
auth_url = http://controller:5000
[trustee]
...
auth_url = http://controller:5000