このセクションは、Compute サービス ( nova ) をコントローラーノードにインストールし、設定する方法を紹介します。
データベース環境の設定
ここでは、Compute サービス ( nova ) のデータベース環境を設定します。
データベースクライアントを使用して、データベースサーバーに root ユーザーとして接続します。
[root@controller ~]# mysql -u root -p Enter password: Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 31 Server version: 10.1.20-MariaDB MariaDB Server Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
データベース nova_api 、nova 、nova_cell0 、placement を作成します。
MariaDB [(none)]> CREATE DATABASE nova_api; Query OK, 1 row affected (0.00 sec) MariaDB [(none)]> CREATE DATABASE nova; Query OK, 1 row affected (0.00 sec) MariaDB [(none)]> CREATE DATABASE nova_cell0; Query OK, 1 row affected (0.00 sec) MariaDB [(none)]> CREATE DATABASE placement; Query OK, 1 row affected (0.00 sec)
データベースに適切なアクセス権を付与します。ここでは nova_api 、nova 、nova_cell0 データベースに接続するパスワードは NOVA_DB_PASS 、placement データベースに接続するパスワードは PLACEMENT_DB_PASS としているので、実際の情報に置き換えてください。
MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'localhost' \ -> IDENTIFIED BY 'NOVA_DB_PASS'; Query OK, 0 rows affected (0.01 sec) MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'%' \ -> IDENTIFIED BY 'NOVA_DB_PASS'; Query OK, 0 rows affected (0.00 sec) MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' \ -> IDENTIFIED BY 'NOVA_DB_PASS'; Query OK, 0 rows affected (0.00 sec) MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' \ -> IDENTIFIED BY 'NOVA_DB_PASS'; Query OK, 0 rows affected (0.00 sec) MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'localhost' \ -> IDENTIFIED BY 'NOVA_DB_PASS'; Query OK, 0 rows affected (0.00 sec) MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'%' \ -> IDENTIFIED BY 'NOVA_DB_PASS'; Query OK, 0 rows affected (0.00 sec) MariaDB [(none)]> GRANT ALL PRIVILEGES ON placement.* TO 'placement'@'localhost' \ -> IDENTIFIED BY 'PLACEMENT_DB_PASS'; Query OK, 0 rows affected (0.00 sec) MariaDB [(none)]> GRANT ALL PRIVILEGES ON placement.* TO 'placement'@'%' \ -> IDENTIFIED BY 'PLACEMENT_DB_PASS'; Query OK, 0 rows affected (0.00 sec) MariaDB [(none)]> exit Bye [root@controller ~]#
クレデンシャルとエンドポイントの作成
admin クレデンシャルを読み込み、管理者専用 CLI コマンドへのアクセス権を取得します。
[root@controller ~]# . openrc/admin-openrc [root@controller ~]#
nova ユーザーを作成します。ここでは、nova ユーザーのパスワードは NOVA_PASS としているので、適宜変更して下さい。
[root@controller ~]# openstack user create --domain default --password-prompt nova User Password: NOVA_PASS Repeat User Password: NOVA_PASS +---------------------+----------------------------------+ | Field | Value | +---------------------+----------------------------------+ | domain_id | default | | enabled | True | | id | 9931465e648344669764ad704f1b5170 | | name | nova | | options | {} | | password_expires_at | None | +---------------------+----------------------------------+ [root@controller ~]#
admin の ロールを nova ユーザーと service プロジェクトに追加します。
[root@controller ~]# openstack role add --project service --user nova admin [root@controller ~]#
nova サービスエンティティーを作成します。
[root@controller ~]# openstack service create --name nova \ > --description "OpenStack Compute" compute +-------------+----------------------------------+ | Field | Value | +-------------+----------------------------------+ | description | OpenStack Compute | | enabled | True | | id | db009971d19a4e069af2eaf7ff825104 | | name | nova | | type | compute | +-------------+----------------------------------+ [root@controller ~]#
Compute サービスの API エンドポイントを作成します。
[root@controller ~]# openstack endpoint create --region RegionOne \ > compute public http://controller:8774/v2.1 +--------------+----------------------------------+ | Field | Value | +--------------+----------------------------------+ | enabled | True | | id | af0b62545a0446628452acc1b9806c83 | | interface | public | | region | RegionOne | | region_id | RegionOne | | service_id | db009971d19a4e069af2eaf7ff825104 | | service_name | nova | | service_type | compute | | url | http://controller:8774/v2.1 | +--------------+----------------------------------+ [root@controller ~]#
[root@controller ~]# openstack endpoint create --region RegionOne \ > compute internal http://controller:8774/v2.1 +--------------+----------------------------------+ | Field | Value | +--------------+----------------------------------+ | enabled | True | | id | 7578099b350b483da4266cfa45588fe8 | | interface | internal | | region | RegionOne | | region_id | RegionOne | | service_id | db009971d19a4e069af2eaf7ff825104 | | service_name | nova | | service_type | compute | | url | http://controller:8774/v2.1 | +--------------+----------------------------------+ [root@controller ~]#
[root@controller ~]# openstack endpoint create --region RegionOne \ > compute admin http://controller:8774/v2.1 +--------------+----------------------------------+ | Field | Value | +--------------+----------------------------------+ | enabled | True | | id | 0c052f0e1ce240669e4cec053a4222d5 | | interface | admin | | region | RegionOne | | region_id | RegionOne | | service_id | db009971d19a4e069af2eaf7ff825104 | | service_name | nova | | service_type | compute | | url | http://controller:8774/v2.1 | +--------------+----------------------------------+ [root@controller ~]#
placement ユーザーを作成します。ここでは、placement ユーザーのパスワードは PLACEMENT_PASS としているので、適宜変更して下さい。
[root@controller ~]# openstack user create --domain default --password-prompt placement User Password: PLACEMENT_PASS Repeat User Password: PLACEMENT_PASS +---------------------+----------------------------------+ | Field | Value | +---------------------+----------------------------------+ | domain_id | default | | enabled | True | | id | 77b83f4eb8a743b7849e9ce8e246a5be | | name | placement | | options | {} | | password_expires_at | None | +---------------------+----------------------------------+ [root@controller ~]#
admin の ロールを placement ユーザーと service プロジェクトに追加します。
[root@controller ~]# openstack role add --project service --user placement admin [root@controller ~]#
placement サービスエンティティーを作成します。
[root@controller ~]# openstack service create --name placement \ > --description "Placement API" placement +-------------+----------------------------------+ | Field | Value | +-------------+----------------------------------+ | description | Placement API | | enabled | True | | id | 6455d40885b54fa5a61c77fc609e7dd3 | | name | placement | | type | placement | +-------------+----------------------------------+ [root@controller ~]#
Placement サービスの API エンドポイントを作成します。
[root@controller ~]# openstack endpoint create --region RegionOne \ > placement public http://controller:8778 +--------------+----------------------------------+ | Field | Value | +--------------+----------------------------------+ | enabled | True | | id | 6a3fe5fa18c745b593b7012780815a3d | | interface | public | | region | RegionOne | | region_id | RegionOne | | service_id | 6455d40885b54fa5a61c77fc609e7dd3 | | service_name | placement | | service_type | placement | | url | http://controller:8778 | +--------------+----------------------------------+ [root@controller ~]#
[root@controller ~]# openstack endpoint create --region RegionOne \ > placement internal http://controller:8778 +--------------+----------------------------------+ | Field | Value | +--------------+----------------------------------+ | enabled | True | | id | f6c3f2d816c94e91bf4b330b6496abf9 | | interface | internal | | region | RegionOne | | region_id | RegionOne | | service_id | 6455d40885b54fa5a61c77fc609e7dd3 | | service_name | placement | | service_type | placement | | url | http://controller:8778 | +--------------+----------------------------------+ [root@controller ~]#
[root@controller ~]# openstack endpoint create --region RegionOne \ > placement admin http://controller:8778 +--------------+----------------------------------+ | Field | Value | +--------------+----------------------------------+ | enabled | True | | id | 7eb7321ac1d9489aaf2ed938d0c82d24 | | interface | admin | | region | RegionOne | | region_id | RegionOne | | service_id | 6455d40885b54fa5a61c77fc609e7dd3 | | service_name | placement | | service_type | placement | | url | http://controller:8778 | +--------------+----------------------------------+ [root@controller ~]#
コンポーネントのインストールと設定
openstack-rocky の yum リポジトリ(CentOS-Openstack-rocky.repo)を使って、 Compute サービス( nova ) に必要なパッケージをインストールします。インストールは、コントローラーノードで実施します。
[root@controller ~]# yum --enablerepo=centos-openstack-rocky -y install openstack-nova-api openstack-nova-conductor \ openstack-nova-console openstack-nova-novncproxy \ openstack-nova-scheduler openstack-nova-placement-api 読み込んだプラグイン:fastestmirror Loading mirror speeds from cached hostfile * base: ftp.nara.wide.ad.jp * extras: ftp.nara.wide.ad.jp * updates: ftp.nara.wide.ad.jp 依存性の解決をしています --> トランザクションの確認を実行しています。 ---> パッケージ openstack-nova-api.noarch 1:18.0.2-1.el7 を インストール --> 依存性の処理をしています: openstack-nova-common = 1:18.0.2-1.el7 のパッケージ: 1:openstack-nova-api-18.0.2-1.el7.noarch ---> パッケージ openstack-nova-conductor.noarch 1:18.0.2-1.el7 を インストール ---> パッケージ openstack-nova-console.noarch 1:18.0.2-1.el7 を インストール --> 依存性の処理をしています: python-websockify >= 0.8.0 のパッケージ: 1:openstack-nova-console-18.0.2-1.el7.noarch ---> パッケージ openstack-nova-novncproxy.noarch 1:18.0.2-1.el7 を インストール --> 依存性の処理をしています: novnc のパッケージ: 1:openstack-nova-novncproxy-18.0.2-1.el7.noarch ---> パッケージ openstack-nova-placement-api.noarch 1:18.0.2-1.el7 を インストール ---> パッケージ openstack-nova-scheduler.noarch 1:18.0.2-1.el7 を インストール --> トランザクションの確認を実行しています。 ---> パッケージ novnc.noarch 0:0.5.1-2.el7 を インストール ---> パッケージ openstack-nova-common.noarch 1:18.0.2-1.el7 を インストール --> 依存性の処理をしています: python-nova = 1:18.0.2-1.el7 のパッケージ: 1:openstack-nova-common-18.0.2-1.el7.noarch ---> パッケージ python-websockify.noarch 0:0.8.0-1.el7 を インストール --> トランザクションの確認を実行しています。 ---> パッケージ python-nova.noarch 1:18.0.2-1.el7 を インストール --> 依存性の処理をしています: python2-tooz >= 1.58.0 のパッケージ: 1:python-nova-18.0.2-1.el7.noarch --> 依存性の処理をしています: python2-paramiko >= 2.0.0 のパッケージ: 1:python-nova-18.0.2-1.el7.noarch --> 依存性の処理をしています: python2-oslo-versionedobjects >= 1.31.2 のパッケージ: 1:python-nova-18.0.2-1.el7.noarch --> 依存性の処理をしています: python2-oslo-reports >= 1.18.0 のパッケージ: 1:python-nova-18.0.2-1.el7.noarch --> 依存性の処理をしています: python2-os-vif >= 1.7.0 のパッケージ: 1:python-nova-18.0.2-1.el7.noarch --> 依存性の処理をしています: python2-microversion-parse >= 0.2.1 のパッケージ: 1:python-nova-18.0.2-1.el7.noarch --> 依存性の処理をしています: python2-psutil のパッケージ: 1:python-nova-18.0.2-1.el7.noarch --> 依存性の処理をしています: python2-os-traits のパッケージ: 1:python-nova-18.0.2-1.el7.noarch --> トランザクションの確認を実行しています。 ---> パッケージ python-paramiko.noarch 0:2.1.1-4.el7 を インストール ---> パッケージ python2-microversion-parse.noarch 0:0.2.1-1.el7 を インストール ---> パッケージ python2-os-traits.noarch 0:0.9.0-1.el7 を インストール ---> パッケージ python2-os-vif.noarch 0:1.11.1-1.el7 を インストール --> 依存性の処理をしています: python2-pyroute2 のパッケージ: python2-os-vif-1.11.1-1.el7.noarch ---> パッケージ python2-oslo-reports.noarch 0:1.28.0-1.el7 を インストール ---> パッケージ python2-oslo-versionedobjects.noarch 0:1.33.3-1.el7 を インストール --> 依存性の処理をしています: python-oslo-versionedobjects-lang = 1.33.3-1.el7 のパッケージ: python2-oslo-versionedobjects-1.33.3-1.el7.noarch ---> パッケージ python2-psutil.x86_64 0:5.2.2-2.el7 を インストール ---> パッケージ python2-tooz.noarch 0:1.62.0-2.el7 を インストール --> 依存性の処理をしています: python2-voluptuous >= 0.8.9 のパッケージ: python2-tooz-1.62.0-2.el7.noarch --> 依存性の処理をしています: python2-zake のパッケージ: python2-tooz-1.62.0-2.el7.noarch --> 依存性の処理をしています: python-redis のパッケージ: python2-tooz-1.62.0-2.el7.noarch --> トランザクションの確認を実行しています。 ---> パッケージ python-oslo-versionedobjects-lang.noarch 0:1.33.3-1.el7 を インストール ---> パッケージ python-redis.noarch 0:2.10.3-1.el7 を インストール ---> パッケージ python2-pyroute2.noarch 0:0.4.21-1.el7 を インストール ---> パッケージ python2-voluptuous.noarch 0:0.10.5-2.el7 を インストール ---> パッケージ python2-zake.noarch 0:0.2.2-2.el7 を インストール --> 依存性の処理をしています: python-kazoo のパッケージ: python2-zake-0.2.2-2.el7.noarch --> トランザクションの確認を実行しています。 ---> パッケージ python-kazoo.noarch 0:2.2.1-1.el7 を インストール --> 依存性解決を終了しました。 依存性を解決しました ================================================================================ Package アーキテクチャー バージョン リポジトリー 容量 ================================================================================ インストール中: openstack-nova-api noarch 1:18.0.2-1.el7 centos-openstack-rocky 7.7 k openstack-nova-conductor noarch 1:18.0.2-1.el7 centos-openstack-rocky 5.2 k openstack-nova-console noarch 1:18.0.2-1.el7 centos-openstack-rocky 6.2 k openstack-nova-novncproxy noarch 1:18.0.2-1.el7 centos-openstack-rocky 5.7 k openstack-nova-placement-api noarch 1:18.0.2-1.el7 centos-openstack-rocky 5.5 k openstack-nova-scheduler noarch 1:18.0.2-1.el7 centos-openstack-rocky 5.2 k 依存性関連でのインストールをします: novnc noarch 0.5.1-2.el7 centos-openstack-rocky 176 k openstack-nova-common noarch 1:18.0.2-1.el7 centos-openstack-rocky 344 k python-kazoo noarch 2.2.1-1.el7 centos-openstack-rocky 130 k python-nova noarch 1:18.0.2-1.el7 centos-openstack-rocky 3.7 M python-oslo-versionedobjects-lang noarch 1.33.3-1.el7 centos-openstack-rocky 7.9 k python-paramiko noarch 2.1.1-4.el7 extras 268 k python-redis noarch 2.10.3-1.el7 centos-openstack-rocky 94 k python-websockify noarch 0.8.0-1.el7 centos-openstack-rocky 69 k python2-microversion-parse noarch 0.2.1-1.el7 centos-openstack-rocky 27 k python2-os-traits noarch 0.9.0-1.el7 centos-openstack-rocky 26 k python2-os-vif noarch 1.11.1-1.el7 centos-openstack-rocky 73 k python2-oslo-reports noarch 1.28.0-1.el7 centos-openstack-rocky 52 k python2-oslo-versionedobjects noarch 1.33.3-1.el7 centos-openstack-rocky 72 k python2-psutil x86_64 5.2.2-2.el7 centos-openstack-rocky 310 k python2-pyroute2 noarch 0.4.21-1.el7 centos-openstack-rocky 377 k python2-tooz noarch 1.62.0-2.el7 centos-openstack-rocky 98 k python2-voluptuous noarch 0.10.5-2.el7 centos-openstack-rocky 50 k python2-zake noarch 0.2.2-2.el7 centos-openstack-rocky 39 k トランザクションの要約 ================================================================================ インストール 6 パッケージ (+18 個の依存関係のパッケージ) 総ダウンロード容量: 5.9 M インストール容量: 25 M Downloading packages: (1/24): openstack-nova-api-18.0.2-1.el7.noarch.rpm | 7.7 kB 00:00 (2/24): openstack-nova-common-18.0.2-1.el7.noarch.rpm | 344 kB 00:00 (3/24): openstack-nova-conductor-18.0.2-1.el7.noarch.rpm | 5.2 kB 00:00 (4/24): openstack-nova-console-18.0.2-1.el7.noarch.rpm | 6.2 kB 00:00 (5/24): openstack-nova-novncproxy-18.0.2-1.el7.noarch.rpm | 5.7 kB 00:00 (6/24): openstack-nova-placement-api-18.0.2-1.el7.noarch.r | 5.5 kB 00:00 (7/24): openstack-nova-scheduler-18.0.2-1.el7.noarch.rpm | 5.2 kB 00:00 (8/24): python-kazoo-2.2.1-1.el7.noarch.rpm | 130 kB 00:00 (9/24): python-nova-18.0.2-1.el7.noarch.rpm | 3.7 MB 00:02 (10/24): python-oslo-versionedobjects-lang-1.33.3-1.el7.no | 7.9 kB 00:00 (11/24): novnc-0.5.1-2.el7.noarch.rpm | 176 kB 00:04 (12/24): python-redis-2.10.3-1.el7.noarch.rpm | 94 kB 00:00 (13/24): python-paramiko-2.1.1-4.el7.noarch.rpm | 268 kB 00:00 (14/24): python2-microversion-parse-0.2.1-1.el7.noarch.rpm | 27 kB 00:00 (15/24): python-websockify-0.8.0-1.el7.noarch.rpm | 69 kB 00:00 (16/24): python2-os-traits-0.9.0-1.el7.noarch.rpm | 26 kB 00:01 (17/24): python2-os-vif-1.11.1-1.el7.noarch.rpm | 73 kB 00:00 (18/24): python2-oslo-reports-1.28.0-1.el7.noarch.rpm | 52 kB 00:00 (19/24): python2-oslo-versionedobjects-1.33.3-1.el7.noarch | 72 kB 00:00 (20/24): python2-psutil-5.2.2-2.el7.x86_64.rpm | 310 kB 00:00 (21/24): python2-tooz-1.62.0-2.el7.noarch.rpm | 98 kB 00:00 (22/24): python2-voluptuous-0.10.5-2.el7.noarch.rpm | 50 kB 00:00 (23/24): python2-zake-0.2.2-2.el7.noarch.rpm | 39 kB 00:00 (24/24): python2-pyroute2-0.4.21-1.el7.noarch.rpm | 377 kB 00:01 -------------------------------------------------------------------------------- 合計 708 kB/s | 5.9 MB 00:08 Running transaction check Running transaction test Transaction test succeeded Running transaction インストール中 : python-websockify-0.8.0-1.el7.noarch 1/24 インストール中 : python2-psutil-5.2.2-2.el7.x86_64 2/24 インストール中 : python2-oslo-reports-1.28.0-1.el7.noarch 3/24 インストール中 : novnc-0.5.1-2.el7.noarch 4/24 インストール中 : python-paramiko-2.1.1-4.el7.noarch 5/24 インストール中 : python-redis-2.10.3-1.el7.noarch 6/24 インストール中 : python2-os-traits-0.9.0-1.el7.noarch 7/24 インストール中 : python2-pyroute2-0.4.21-1.el7.noarch 8/24 インストール中 : python-kazoo-2.2.1-1.el7.noarch 9/24 インストール中 : python2-zake-0.2.2-2.el7.noarch 10/24 インストール中 : python2-voluptuous-0.10.5-2.el7.noarch 11/24 インストール中 : python2-tooz-1.62.0-2.el7.noarch 12/24 インストール中 : python2-microversion-parse-0.2.1-1.el7.noar 13/24 インストール中 : python-oslo-versionedobjects-lang-1.33.3-1. 14/24 インストール中 : python2-oslo-versionedobjects-1.33.3-1.el7. 15/24 インストール中 : python2-os-vif-1.11.1-1.el7.noarch 16/24 インストール中 : 1:python-nova-18.0.2-1.el7.noarch 17/24 インストール中 : 1:openstack-nova-common-18.0.2-1.el7.noarch 18/24 インストール中 : 1:openstack-nova-conductor-18.0.2-1.el7.noa 19/24 インストール中 : 1:openstack-nova-scheduler-18.0.2-1.el7.noa 20/24 インストール中 : 1:openstack-nova-api-18.0.2-1.el7.noarch 21/24 インストール中 : 1:openstack-nova-placement-api-18.0.2-1.el7 22/24 インストール中 : 1:openstack-nova-novncproxy-18.0.2-1.el7.no 23/24 インストール中 : 1:openstack-nova-console-18.0.2-1.el7.noarc 24/24 検証中 : python2-zake-0.2.2-2.el7.noarch 1/24 検証中 : python-oslo-versionedobjects-lang-1.33.3-1. 2/24 検証中 : python2-oslo-reports-1.28.0-1.el7.noarch 3/24 検証中 : python2-os-vif-1.11.1-1.el7.noarch 4/24 検証中 : 1:openstack-nova-conductor-18.0.2-1.el7.noa 5/24 検証中 : python2-tooz-1.62.0-2.el7.noarch 6/24 検証中 : python2-microversion-parse-0.2.1-1.el7.noar 7/24 検証中 : 1:openstack-nova-scheduler-18.0.2-1.el7.noa 8/24 検証中 : 1:openstack-nova-api-18.0.2-1.el7.noarch 9/24 検証中 : python2-voluptuous-0.10.5-2.el7.noarch 10/24 検証中 : python-kazoo-2.2.1-1.el7.noarch 11/24 検証中 : python2-pyroute2-0.4.21-1.el7.noarch 12/24 検証中 : 1:openstack-nova-placement-api-18.0.2-1.el7 13/24 検証中 : 1:openstack-nova-novncproxy-18.0.2-1.el7.no 14/24 検証中 : python2-os-traits-0.9.0-1.el7.noarch 15/24 検証中 : novnc-0.5.1-2.el7.noarch 16/24 検証中 : 1:openstack-nova-common-18.0.2-1.el7.noarch 17/24 検証中 : 1:openstack-nova-console-18.0.2-1.el7.noarc 18/24 検証中 : python-redis-2.10.3-1.el7.noarch 19/24 検証中 : 1:python-nova-18.0.2-1.el7.noarch 20/24 検証中 : python2-oslo-versionedobjects-1.33.3-1.el7. 21/24 検証中 : python2-psutil-5.2.2-2.el7.x86_64 22/24 検証中 : python-paramiko-2.1.1-4.el7.noarch 23/24 検証中 : python-websockify-0.8.0-1.el7.noarch 24/24 インストール: openstack-nova-api.noarch 1:18.0.2-1.el7 openstack-nova-conductor.noarch 1:18.0.2-1.el7 openstack-nova-console.noarch 1:18.0.2-1.el7 openstack-nova-novncproxy.noarch 1:18.0.2-1.el7 openstack-nova-placement-api.noarch 1:18.0.2-1.el7 openstack-nova-scheduler.noarch 1:18.0.2-1.el7 依存性関連をインストールしました: novnc.noarch 0:0.5.1-2.el7 openstack-nova-common.noarch 1:18.0.2-1.el7 python-kazoo.noarch 0:2.2.1-1.el7 python-nova.noarch 1:18.0.2-1.el7 python-oslo-versionedobjects-lang.noarch 0:1.33.3-1.el7 python-paramiko.noarch 0:2.1.1-4.el7 python-redis.noarch 0:2.10.3-1.el7 python-websockify.noarch 0:0.8.0-1.el7 python2-microversion-parse.noarch 0:0.2.1-1.el7 python2-os-traits.noarch 0:0.9.0-1.el7 python2-os-vif.noarch 0:1.11.1-1.el7 python2-oslo-reports.noarch 0:1.28.0-1.el7 python2-oslo-versionedobjects.noarch 0:1.33.3-1.el7 python2-psutil.x86_64 0:5.2.2-2.el7 python2-pyroute2.noarch 0:0.4.21-1.el7 python2-tooz.noarch 0:1.62.0-2.el7 python2-voluptuous.noarch 0:0.10.5-2.el7 python2-zake.noarch 0:0.2.2-2.el7 完了しました! [root@controller ~]#
Nova の設定ファイル( /etc/nova/nova.conf )を編集し、以下の設定をします。
[root@controller ~]# vi /etc/nova/nova.conf
[DEFAULT] セクションで、 compute API とメタデータ API のみを有効にします。
[DEFAULT] # ... enabled_apis = osapi_compute,metadata
セクション [api_database] と [database] と [placement_database] で、データベースのアクセス方法を設定します。ここでは、nova データベースに接続するパスワードは NOVA_DB_PASS 、placement データベースに接続するパスワードは PLACEMENT_DB_PASS としているので、実際の情報に置き換えてください。
[api_database] # ... connection = mysql+pymysql://nova:NOVA_DB_PASS@controller/nova_api [database] # ... connection = mysql+pymysql://nova:NOVA_DB_PASS@controller/nova [placement_database] # ... connection = mysql+pymysql://placement:PLACEMENT_DB_PASS@controller/placement
[DEFAULT] セクションに、RabbitMQ メッセージキューのアクセス方法を設定します。RABBIT_PASS は、RabbitMQ の openstack ユーザー用に選択したパスワードに置き換えてください。
[DEFAULT] # ... transport_url = rabbit://openstack:RABBIT_PASS@controller
[api] セクションと [keystone_authtoken] セクションに、認証サービス( Keystone )へのアクセス方法を設定します。ここでは、nova ユーザーのパスワードは NOVA_PASS としているので、実際の情報に置き換えてください。
[api] # ... auth_strategy = keystone [keystone_authtoken] # ... auth_url = http://controller:5000/v3 memcached_servers = controller:11211 auth_type = password project_domain_name = default user_domain_name = default project_name = service username = nova password = NOVA_PASS
[DEFAULT] セクションで、コントローラーノードの管理インターフェースの IP アドレスを使用するように my_ip オプションを設定します。
[DEFAULT] # ... my_ip = 192.168.24.111
[DEFAULT] セクションで、Networking サービスのサポートを有効にします。
[DEFAULT] # ... use_neutron = true firewall_driver = nova.virt.firewall.NoopFirewallDriver
[vnc] セクションで、VNC プロキシーを有効にし、コントローラーノードの管理インターフェース IP アドレスを使用するように、VNC プロキシーを設定します。
[vnc] enabled = true # ... server_listen = $my_ip server_proxyclient_address = $my_ip
[glance] セクションで、Image サービス API の場所を設定します。
[glance] # ... api_servers = http://controller:9292
[oslo_concurrency] セクションにロックパスを設定します。
[oslo_concurrency] # ... lock_path = /var/lib/nova/tmp
[placement] セクションに Placement へのアクセス方法を設定します。ここでは、placement ユーザーのパスワードは PLACEMENT_PASS としているので、実際の情報に置き換えてください。
[placement] # ... region_name = RegionOne project_domain_name = Default project_name = service auth_type = password user_domain_name = Default auth_url = http://controller:5000/v3 username = placement password = PLACEMENT_PASS
パッケージングのバグにより、/etc/httpd/conf.d/00-nova-placement-api.confに 〜(ここから)〜 から 〜(ここまで追加)〜 の設定を追加して、プレースメントAPIへのアクセスを有効にします。
[root@controller ~]# vi /etc/httpd/conf.d/00-nova-placement-api.conf Listen 8778 <VirtualHost *:8778> WSGIProcessGroup nova-placement-api WSGIApplicationGroup %{GLOBAL} WSGIPassAuthorization On WSGIDaemonProcess nova-placement-api processes=3 threads=1 user=nova group=nova WSGIScriptAlias / /usr/bin/nova-placement-api <IfVersion >= 2.4> ErrorLogFormat "%M" </IfVersion> ErrorLog /var/log/nova/nova-placement-api.log #SSLEngine On #SSLCertificateFile ... #SSLCertificateKeyFile ... 〜(ここから)〜 <Directory /usr/bin> <IfVersion >= 2.4> Require all granted </IfVersion> <IfVersion < 2.4> Order allow,deny Allow from all </IfVersion> </Directory> 〜(ここまで追加)〜 </VirtualHost>
httpd サービスを再起動します。
■ 再起動 [root@controller ~]# systemctl restart httpd [root@controller ~]# ■ 起動状態の確認 [root@controller ~]# systemctl status httpd ● httpd.service - The Apache HTTP Server Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled) Active: active (running) since 日 2018-10-21 12:15:18 JST; 5s ago Docs: man:httpd(8) man:apachectl(8) Process: 4816 ExecStop=/bin/kill -WINCH ${MAINPID} (code=exited, status=0/SUCCESS) Main PID: 4826 (httpd) Status: "Processing requests..." CGroup: /system.slice/httpd.service ├─4826 /usr/sbin/httpd -DFOREGROUND ├─4827 /usr/sbin/httpd -DFOREGROUND ├─4828 /usr/sbin/httpd -DFOREGROUND ├─4829 /usr/sbin/httpd -DFOREGROUND ├─4830 (wsgi:keystone- -DFOREGROUND ├─4831 (wsgi:keystone- -DFOREGROUND ├─4832 (wsgi:keystone- -DFOREGROUND ├─4833 (wsgi:keystone- -DFOREGROUND ├─4834 (wsgi:keystone- -DFOREGROUND ├─4835 /usr/sbin/httpd -DFOREGROUND ├─4836 /usr/sbin/httpd -DFOREGROUND ├─4837 /usr/sbin/httpd -DFOREGROUND ├─4838 /usr/sbin/httpd -DFOREGROUND └─4839 /usr/sbin/httpd -DFOREGROUND 10月 21 12:15:17 controller systemd[1]: Starting The Apache HTTP Server... 10月 21 12:15:18 controller systemd[1]: Started The Apache HTTP Server. [root@controller ~]#
nova と placement データベースを展開します。
[root@controller ~]# su -s /bin/sh -c "nova-manage api_db sync" nova [root@controller ~]#
cell0 データベースを登録します。
[root@controller ~]# su -s /bin/sh -c "nova-manage cell_v2 map_cell0" nova [root@controller ~]#
cell1 セルを作成します。
[root@controller ~]# su -s /bin/sh -c "nova-manage cell_v2 create_cell --name=cell1 --verbose" nova 836a518c-376f-421d-abe5-7dde15dd2558 [root@controller ~]#
Compute サービス( nova ) データベースを展開します。
[root@controller ~]# su -s /bin/sh -c "nova-manage db sync" nova /usr/lib/python2.7/site-packages/pymysql/cursors.py:166: Warning: (1831, u'Duplicate index `block_device_mapping_instance_uuid_virtual_name_device_name_idx`. This is deprecated and will be disallowed in a future release.') result = self._query(query) /usr/lib/python2.7/site-packages/pymysql/cursors.py:166: Warning: (1831, u'Duplicate index `uniq_instances0uuid`. This is deprecated and will be disallowed in a future release.') result = self._query(query) [root@controller ~]#
nova cell0 と cell1 が正しく登録されていることを確認します。
[root@controller ~]# su -s /bin/sh -c "nova-manage cell_v2 list_cells" nova +-------+--------------------------------------+------------------------------------+-------------------------------------------------+----------+ | Name | UUID | Transport URL | Database Connection | Disabled | +-------+--------------------------------------+------------------------------------+-------------------------------------------------+----------+ | cell0 | 00000000-0000-0000-0000-000000000000 | none:/ | mysql+pymysql://nova:****@controller/nova_cell0 | False | | cell1 | 836a518c-376f-421d-abe5-7dde15dd2558 | rabbit://openstack:****@controller | mysql+pymysql://nova:****@controller/nova | False | +-------+--------------------------------------+------------------------------------+-------------------------------------------------+----------+ [root@controller ~]#
ファイアウォールでの通信許可
Compute サービス( Nova )で必要となる TCP 6080( Nova novnc Proxy )と 6081( Nova xvpvnc proxy )と 6082( Nova spicehtml5 proxy )と 8774( Nova API ) と 8775( Nova メタデータ )通信を許可します。
[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 ~]# [root@controller ~]# firewall-cmd --add-port=6082/tcp --zone=public --permanent success [root@controller ~]# [root@controller ~]# firewall-cmd --add-port=8774/tcp --zone=public --permanent success [root@controller ~]# [root@controller ~]# firewall-cmd --add-port=8775/tcp --zone=public --permanent success [root@controller ~]#
firewalld をリロードし、設定を反映します。
[root@controller ~]# firewall-cmd --reload success [root@controller ~]#
インストールの最後
Compute サービス( Nova )の自動起動を有効化します。
■ 自動起動の有効化 [root@controller ~]# systemctl enable openstack-nova-api.service \ > openstack-nova-scheduler.service openstack-nova-conductor.service \ > openstack-nova-novncproxy.service Created symlink from /etc/systemd/system/multi-user.target.wants/openstack-nova-api.service to /usr/lib/systemd/system/openstack-nova-api.service. Created symlink from /etc/systemd/system/multi-user.target.wants/openstack-nova-scheduler.service to /usr/lib/systemd/system/openstack-nova-scheduler.service. Created symlink from /etc/systemd/system/multi-user.target.wants/openstack-nova-conductor.service to /usr/lib/systemd/system/openstack-nova-conductor.service. Created symlink from /etc/systemd/system/multi-user.target.wants/openstack-nova-novncproxy.service to /usr/lib/systemd/system/openstack-nova-novncproxy.service. [root@controller ~]# ■ 自動起動の状態確認 [root@controller ~]# systemctl is-enabled openstack-nova-api.service openstack-nova-scheduler.service openstack-nova-conductor.service openstack-nova-novncproxy.service enabled enabled enabled enabled [root@controller ~]#
Compute サービス( Nova )を再起動します。
■ 再起動 [root@controller ~]# systemctl restart openstack-nova-api.service \ > openstack-nova-scheduler.service openstack-nova-conductor.service \ > openstack-nova-novncproxy.service [root@controller ~]# ■ 起動状態の確認 [root@controller ~]# systemctl status openstack-nova-api.service openstack-nova-scheduler.service openstack-nova-conductor.service openstack-nova-novncproxy.service ● openstack-nova-api.service - OpenStack Nova API Server Loaded: loaded (/usr/lib/systemd/system/openstack-nova-api.service; enabled; vendor preset: disabled) Active: active (running) since 日 2018-10-21 12:19:18 JST; 8s ago Main PID: 5009 (nova-api) CGroup: /system.slice/openstack-nova-api.service ├─5009 /usr/bin/python2 /usr/bin/nova-api ├─5063 /usr/bin/python2 /usr/bin/nova-api ├─5064 /usr/bin/python2 /usr/bin/nova-api ├─5067 /usr/bin/python2 /usr/bin/nova-api └─5068 /usr/bin/python2 /usr/bin/nova-api 10月 21 12:19:14 controller systemd[1]: Starting OpenStack Nova API Server... 10月 21 12:19:18 controller systemd[1]: Started OpenStack Nova API Server. ● openstack-nova-scheduler.service - OpenStack Nova Scheduler Server Loaded: loaded (/usr/lib/systemd/system/openstack-nova-scheduler.service; enabled; vendor preset: disabled) Active: active (running) since 日 2018-10-21 12:19:18 JST; 9s ago Main PID: 5010 (nova-scheduler) CGroup: /system.slice/openstack-nova-scheduler.service ├─5010 /usr/bin/python2 /usr/bin/nova-scheduler ├─5052 /usr/bin/python2 /usr/bin/nova-scheduler └─5053 /usr/bin/python2 /usr/bin/nova-scheduler 10月 21 12:19:14 controller systemd[1]: Starting OpenStack Nova Scheduler S.... 10月 21 12:19:18 controller systemd[1]: Started OpenStack Nova Scheduler Se.... ● openstack-nova-conductor.service - OpenStack Nova Conductor Server Loaded: loaded (/usr/lib/systemd/system/openstack-nova-conductor.service; enabled; vendor preset: disabled) Active: active (running) since 日 2018-10-21 12:19:18 JST; 9s ago Main PID: 5011 (nova-conductor) CGroup: /system.slice/openstack-nova-conductor.service ├─5011 /usr/bin/python2 /usr/bin/nova-conductor ├─5059 /usr/bin/python2 /usr/bin/nova-conductor └─5060 /usr/bin/python2 /usr/bin/nova-conductor 10月 21 12:19:14 controller systemd[1]: Starting OpenStack Nova Conductor S.... 10月 21 12:19:18 controller systemd[1]: Started OpenStack Nova Conductor Se.... ● openstack-nova-novncproxy.service - OpenStack Nova NoVNC Proxy Server Loaded: loaded (/usr/lib/systemd/system/openstack-nova-novncproxy.service; enabled; vendor preset: disabled) Active: active (running) since 日 2018-10-21 12:19:14 JST; 13s ago Main PID: 5012 (nova-novncproxy) CGroup: /system.slice/openstack-nova-novncproxy.service └─5012 /usr/bin/python2 /usr/bin/nova-novncproxy --web /usr/share/... 10月 21 12:19:14 controller systemd[1]: Started OpenStack Nova NoVNC Proxy .... 10月 21 12:19:14 controller systemd[1]: Starting OpenStack Nova NoVNC Proxy.... Hint: Some lines were ellipsized, use -l to show in full. [root@controller ~]#
Nova の consoleauth サービスの自動起動を有効化します。
■ 自動起動の有効化 [root@controller ~]# systemctl enable openstack-nova-consoleauth Created symlink from /etc/systemd/system/multi-user.target.wants/openstack-nova-consoleauth.service to /usr/lib/systemd/system/openstack-nova-consoleauth.service. [root@controller ~]# ■ 自動起動の状態確認 [root@controller ~]# systemctl is-enabled openstack-nova-consoleauth enabled [root@controller ~]#
Nova の consoleauth サービスを起動します。consoleauth サービスが起動していないと、インスタンスの VNC セッション URLの取得ができないため、注意してください。
■ 起動 [root@controller ~]# systemctl start openstack-nova-consoleauth [root@controller ~]# ■ 起動状態の確認 [root@controller ~]# systemctl status openstack-nova-consoleauth ● openstack-nova-consoleauth.service - OpenStack Nova VNC console auth Server Loaded: loaded (/usr/lib/systemd/system/openstack-nova-consoleauth.service; disabled; vendor preset: disabled) Active: active (running) since 日 2018-10-21 20:11:28 JST; 1s ago Main PID: 10365 (nova-consoleaut) CGroup: /system.slice/openstack-nova-consoleauth.service └─10365 /usr/bin/python2 /usr/bin/nova-consoleauth 10月 21 20:11:26 controller systemd[1]: Starting OpenStack Nova VNC console.... 10月 21 20:11:28 controller systemd[1]: Started OpenStack Nova VNC console .... Hint: Some lines were ellipsized, use -l to show in full. [root@controller ~]#