【OpenStackチャレンジ】 第25回 Nova環境構築編

2016.9.16


はじめに

photo-1430651717504-ebb9e3e6795e.jpg

今回は、KeystoneSwiftGlanceCinderに続けて、OpenStackのコンポーネントの1つであるNovaを紹介したいと思います。
Novaは、OpenStackの中心的なコンポーネントであり、ハイパーバイザーなどの仮想環境を制御し、仮想マシンの管理を行っています。
ただし、Neutronをインストールしていないので、仮想マシンインスタンスを起動することはできません。
前回までと同じ様に、手動インストールを通して理解を深めていきましょう。

Nova環境の構成図

Keystone、Glance、Cinderをインストールした状態(【OpenStackチャレンジ】 第24回 Cinder環境構築編)の仮想マシンに、(Liberty版)OpenStack インストールガイド Ubuntu 14.04 (LTS)版 - Compute サービスを参考にしてインストールを進めていきます。

今回も、VirtualBox上に以下の様な構成で仮想マシンを作成し、進めていきます。NOVINS-025.PNG

Novaの環境構築

コントローラノードに、コンピュートノードとの通信を行うための「アダプター2」を追加し、「内部ネットワーク」に設定します。NOVINS-014.PNG コントローラノードを起動し、「/etc/hosts」ファイルを変更し、確認します。

$ sudo vi /etc/hosts

#コントローラノードのIPアドレスとホスト名を設定する。
10.0.0.101      controller
#コンピュートノードのIPアドレスとホスト名を設定する。
10.0.0.102      compute

$ cat /etc/hosts | grep 10.0.0

10.0.0.101      controller
10.0.0.102      compute

コンピュートノードは、Ubuntu Server 14.04.3 LTSを最小構成でインストールしたものを使用します。

コンピュートノードに、コントローラノードとの通信を行うための「アダプター2」を追加し、「内部ネットワーク」に設定します。NOVINS-015.PNG

コンピュートノードを起動し、「/etc/hosts」ファイルを変更し、確認します。

$ sudo vi /etc/hosts

#コントローラノードのIPアドレスとホスト名を設定する。
10.0.0.101      controller
#コンピュートノードのIPアドレスとホスト名を設定する。
10.0.0.102      compute

$ cat /etc/hosts | grep 10.0.0

10.0.0.101      controller
10.0.0.102      compute

コンピュートノードの「/etc/network/interfaces」ファイルを変更し、確認します。
$ sudo vi /etc/network/interfaces

#起動時にloインターフェースを起動するように設定する。
auto lo
#loインターフェースをローカルループバックに設定する。
iface lo inet loopback
#起動時にeth0インターフェースを起動するように設定する。
auto eth0
#eth0インターフェースをDHCP接続に設定する。
iface eth0 inet dhcp
#起動時にeth1インターフェースを起動するように設定する。
auto eth1
#eth1インターフェースをスタティック接続に設定する。
iface eth1 inet static
#eth1インターフェースのIPアドレスを設定する。
address 10.0.0.102
#eth1インターフェースのネットマスクを設定する。
netmask 255.255.255.0
#DNSサーバーのIPアドレスを設定する。
dns-nameserver 8.8.8.8

$ cat /etc/network/interfaces | grep -v "^\s*$" | grep -v "^\s*#"

auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
auto eth1
iface eth1 inet static
address 10.0.0.102
netmask 255.255.255.0
dns-nameserver 8.8.8.8

コンピュートノードの「/etc/hostname」ファイルを変更し、確認します。
$ sudo vi /etc/hostname

#コンピュートノードのホスト名を設定する。
compute

$ cat /etc/hostname

compute

コントローラノードとコンピュートノードを再起動します。
コントローラノードとコンピュートノードで、疎通と名前解決ができることを確認します。
$ ping compute -c5

PING compute (10.0.0.102) 56(84) bytes of data.
64 bytes from compute (10.0.0.102): icmp_seq=1 ttl=64 time=1.09 ms
64 bytes from compute (10.0.0.102): icmp_seq=2 ttl=64 time=0.914 ms
64 bytes from compute (10.0.0.102): icmp_seq=3 ttl=64 time=0.663 ms
64 bytes from compute (10.0.0.102): icmp_seq=4 ttl=64 time=0.875 ms
64 bytes from compute (10.0.0.102): icmp_seq=5 ttl=64 time=1.09 ms

--- compute ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4008ms
rtt min/avg/max/mdev = 0.663/0.929/1.099/0.166 ms

$ ping controller -c5

PING controller (10.0.0.101) 56(84) bytes of data.
64 bytes from controller (10.0.0.101): icmp_seq=1 ttl=64 time=0.113 ms
64 bytes from controller (10.0.0.101): icmp_seq=2 ttl=64 time=0.177 ms
64 bytes from controller (10.0.0.101): icmp_seq=3 ttl=64 time=0.118 ms
64 bytes from controller (10.0.0.101): icmp_seq=4 ttl=64 time=0.093 ms
64 bytes from controller (10.0.0.101): icmp_seq=5 ttl=64 time=0.041 ms

--- controller ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 3998ms
rtt min/avg/max/mdev = 0.041/0.108/0.177/0.044 ms

$ nslookup www.yahoo.co.jp

Server:		192.168.***.***
Address:	192.168.***.***

Non-authoritative answer:
www.yahoo.co.jp	canonical name = www.g.yahoo.co.jp.
Name:	www.g.yahoo.co.jp
Address: 182.22.71.250
Name:	www.g.yahoo.co.jp
Address: 182.22.71.251
Name:	www.g.yahoo.co.jp
Address: 182.22.70.251
Name:	www.g.yahoo.co.jp
Address: 182.22.70.252

これでインストールの準備は完了です。

コントローラノードにNovaをインストールしよう

まずは、システムをアップデートしておきます!
$ sudo apt-get update

novaのデータベースを作成し、アクセス権を付与します。パスワード入力を求められるので、今回は全てのパスワードをubuntuと入力します。
$ mysql -u root -p << EOF
CREATE DATABASE nova;
GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' IDENTIFIED BY 'ubuntu';
GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' IDENTIFIED BY 'ubuntu';
EOF

Enter password: 

novaのデータベースにNovaユーザーでログインし、データベースの閲覧が可能であることを確認します。
$ mysql -u nova -p
Enter password:ubuntu
MariaDB [(none)]> show databases;

+--------------------+
| Database           |
+--------------------+
| information_schema |
| nova               |
+--------------------+
2 rows in set (0.00 sec)

MariaDB [(none)]> quit

Bye

管理者用の環境設定ファイルを読み込みます。
$ source admin-openrc.sh

ubuntu@controller:~$ source admin-openrc.sh
ubuntu@controller ~(admin)$

OpenStackのnovaユーザーを作成します。
$ openstack user create --domain default --password-prompt nova

User Password:
Repeat User Password:
+-----------+----------------------------------+
| Field     | Value                            |
+-----------+----------------------------------+
| domain_id | default                          |
| enabled   | True                             |
| id        | 42771eb14e6e4bea874efed5f2e9ed72 |
| name      | nova                             |
+-----------+----------------------------------+

novaユーザーが作成されたか確認しましょう。
$ openstack user list

+----------------------------------+--------+
| ID                               | Name   |
+----------------------------------+--------+
| 42771eb14e6e4bea874efed5f2e9ed72 | nova   |
| a5423dbeafec4d3eb38ae2da887a36b8 | glance |
| d10af0398e344bcc9165a44368d4706a | cinder |
| ea4f34d6b33b466692850f73541b514e | admin  |
+----------------------------------+--------+

novaユーザーをadminロールに追加します。
$ openstack role add --project service --user nova admin
追加されたか確認してみましょう。
$ openstack role list --user nova --project service

+----------------------------------+-------+---------+------+
| ID                               | Name  | Project | User |
+----------------------------------+-------+---------+------+
| 7386619b798143b78acbbc6494c62ada | admin | service | nova |
+----------------------------------+-------+---------+------+

novaサービスエンティティーを作成します。
$ openstack service create --name nova --description "OpenStack Compute" compute

+-------------+----------------------------------+
| Field       | Value                            |
+-------------+----------------------------------+
| description | OpenStack Compute                |
| enabled     | True                             |
| id          | d5d7916727984f3c97d633f58cb74530 |
| name        | nova                             |
| type        | compute                          |
+-------------+----------------------------------+

作成されたか確認してみましょう。
$ openstack service show nova

+-------------+----------------------------------+
| Field       | Value                            |
+-------------+----------------------------------+
| description | OpenStack Compute                |
| enabled     | True                             |
| id          | d5d7916727984f3c97d633f58cb74530 |
| name        | nova                             |
| type        | compute                          |
+-------------+----------------------------------+

Novaサービスポイントを作成します。
リージョンは、Keystoneをインストールしたときに設定したリージョン「RegionOne」を指定します。
$ openstack endpoint create --region RegionOne compute public http://controller:8774/v2/%\(tenant_id\)s

+--------------+-----------------------------------------+
| Field        | Value                                   |
+--------------+-----------------------------------------+
| enabled      | True                                    |
| id           | 1a59de3ff8dc4c18ab4148005bb13dce        |
| interface    | public                                  |
| region       | RegionOne                               |
| region_id    | RegionOne                               |
| service_id   | d5d7916727984f3c97d633f58cb74530        |
| service_name | nova                                    |
| service_type | compute                                 |
| url          | http://controller:8774/v2/%(tenant_id)s |
+--------------+-----------------------------------------+

$ openstack endpoint create --region RegionOne compute internal http://controller:8774/v2/%\(tenant_id\)s

+--------------+-----------------------------------------+
| Field        | Value                                   |
+--------------+-----------------------------------------+
| enabled      | True                                    |
| id           | fbea9e32c0a644798a4019f62664f5e9        |
| interface    | internal                                |
| region       | RegionOne                               |
| region_id    | RegionOne                               |
| service_id   | d5d7916727984f3c97d633f58cb74530        |
| service_name | nova                                    |
| service_type | compute                                 |
| url          | http://controller:8774/v2/%(tenant_id)s |
+--------------+-----------------------------------------+

$ openstack endpoint create --region RegionOne compute admin http://controller:8774/v2/%\(tenant_id\)s

+--------------+-----------------------------------------+
| Field        | Value                                   |
+--------------+-----------------------------------------+
| enabled      | True                                    |
| id           | bd8555581332455090f2d0cd4c644641        |
| interface    | admin                                   |
| region       | RegionOne                               |
| region_id    | RegionOne                               |
| service_id   | d5d7916727984f3c97d633f58cb74530        |
| service_name | nova                                    |
| service_type | compute                                 |
| url          | http://controller:8774/v2/%(tenant_id)s |
+--------------+-----------------------------------------+

サービスポイントが作成されたか確認してみましょう。
$ openstack endpoint list --service nova

+----------------------------------+-----------+--------------+--------------+---------+-----------+-----------------------------------------+
| ID                               | Region    | Service Name | Service Type | Enabled | Interface | URL                                     |
+----------------------------------+-----------+--------------+--------------+---------+-----------+-----------------------------------------+
| 1a59de3ff8dc4c18ab4148005bb13dce | RegionOne | nova         | compute      | True    | public    | http://controller:8774/v2/%(tenant_id)s |
| bd8555581332455090f2d0cd4c644641 | RegionOne | nova         | compute      | True    | admin     | http://controller:8774/v2/%(tenant_id)s |
| fbea9e32c0a644798a4019f62664f5e9 | RegionOne | nova         | compute      | True    | internal  | http://controller:8774/v2/%(tenant_id)s |
+----------------------------------+-----------+--------------+--------------+---------+-----------+-----------------------------------------+

Novaと必要なパッケージをインストールします。
$ sudo apt-get install -y nova-api nova-cert nova-conductor nova-consoleauth nova-novncproxy nova-scheduler python-novaclient

コントローラノードのNovaを設定しよう

nova.confの設定を行います。
$ sudo vi /etc/nova/nova.conf

[DEFAULT]
#DEBUGレベルのロギングを有効にする。
debug = True
#冗長ロギングを有効にする。
verbose=True
#dhcpbridgeのflagfilesのあるディレクトリーを設定する。
dhcpbridge_flagfile=/etc/nova/nova.conf
#nova-dhcpbridgeの実行ファイルのあるディレクトリーを設定する。
dhcpbridge=/usr/bin/nova-dhcpbridge
#Novaのログファイルのあるディレクトリーを設定する。
logdir=/var/log/nova
#Novaの状態を保持するトップディレクトリーを設定する。
state_path=/var/lib/nova
#lock_path=/var/lock/nova
#仮想マシンインスタンスの停止をDHCPサーバーに通知するように設定する。
force_dhcp_release=True
#KVM/QEMUのブリッジインターフェースとしてvirtio(準仮想化ドライバ)を使用する。
libvirt_use_virtio_for_bridges=True
#仮想マシンインスタンスに割り当てられたIPアドレスを戻すように設定する。
ec2_private_dns_show_ip=True
#nova-apiが使用するPasteDeployの設定ファイル名を設定する。
api_paste_config=/etc/nova/api-paste.ini
#デフォルトで使用可能なAPIのリストを設定する。
enabled_apis=ec2,osapi_compute,metadata
#使用するAMQPクライアントを設定する。
rpc_backend = rabbit
#認証サービスへのアクセス方法をKeystoneに設定する。
auth_strategy = keystone
#コントローラノードのIPアドレスを設定する。
my_ip = 10.0.0.101
#ネットワークAPIクラスのクラス名を設定する。
network_api_class = nova.network.neutronv2.api.API
#セキュリティAPIクラスのクラス名を設定する。
security_group_api = neutron
#イーサネットデバイスを作成するために使用するデバイスドライバーを設定する。
linuxnet_interface_driver = nova.network.linux_net.NeutronLinuxBridgeInterfaceDriver
#ファイアウォールを無効化にする。
firewall_driver = nova.virt.firewall.NoopFirewallDriver
#デフォルトで使用可能なAPIのリストを設定する。
enabled_apis=osapi_compute,metadata

[vnc]
#VNCサーバーをバインドするIPアドレスを設定する。
vncserver_listen = 10.0.0.101
#プロキシーがインスタンスに接続するのに使用するコンピュートホストのIPアドレスを設定する。
vncserver_proxyclient_address = 10.0.0.101
#VNCクライアントが仮想マシンインスタンスに接続するブラウザーのアドレスを設定する。
novncproxy_base_url = http://10.0.0.101:6080/vnc_auto.html

[database]
#データベースのアクセス方法を設定する。
connection = mysql+pymysql://nova:ubuntu@controller/nova

[oslo_messaging_rabbit]
#Rabbitサーバーのホスト名を設定する。
rabbit_host = controller
#Rabbitサーバーへアクセスするユーザー名を設定する。
rabbit_userid = openstack
#Rabbitサーバーへアクセスするパスワードを設定する。
rabbit_password = ubuntu

[keystone_authtoken]
#Keystoneサービス用エンドポイントを設定する。
auth_uri = http://controller:5000
#Keystone管理用エンドポイントを設定する。
auth_url = http://controller:35357
#パスワード認証に設定する。
auth_plugin = password
#KeystoneのプロジェクトドメインIDを設定する。
project_domain_id = default
#KeystoneのユーザードメインIDを設定する。
user_domain_id = default
#Keystoneのプロジェクト名を設定する。
project_name = service
#Keystoneへアクセスするユーザー名を設定する。
username = nova
#Keystoneへアクセスするパスワードを設定する。
password = ubuntu

[glance]
#Glanceのホスト名を設定する。
host = controller

[oslo_concurrency]
#ロックパスを設定する。
lock_path = /var/lib/nova/tmp

次のコマンドを実行して正しく設定を行ったか確認しましょう。
$ sudo cat /etc/nova/nova.conf | grep -v "^\s*$" | grep -v "^\s*#"

[DEFAULT]
debug = True
verbose=True
dhcpbridge_flagfile=/etc/nova/nova.conf
dhcpbridge=/usr/bin/nova-dhcpbridge
logdir=/var/log/nova
state_path=/var/lib/nova
force_dhcp_release=True
libvirt_use_virtio_for_bridges=True
ec2_private_dns_show_ip=True
api_paste_config=/etc/nova/api-paste.ini
enabled_apis=ec2,osapi_compute,metadata
rpc_backend = rabbit
auth_strategy = keystone
my_ip = 10.0.0.101
network_api_class = nova.network.neutronv2.api.API
security_group_api = neutron
linuxnet_interface_driver = nova.network.linux_net.NeutronLinuxBridgeInterfaceDriver
firewall_driver = nova.virt.firewall.NoopFirewallDriver
enabled_apis=osapi_compute,metadata
[vnc]
vncserver_listen = 10.0.0.101
vncserver_proxyclient_address = 10.0.0.101
novncproxy_base_url = http://10.0.0.101:6080/vnc_auto.html
[database]
connection = mysql+pymysql://nova:ubuntu@controller/nova
[oslo_messaging_rabbit]
rabbit_host = controller
rabbit_userid = openstack
rabbit_password = ubuntu
[keystone_authtoken]
auth_uri = http://controller:5000
auth_url = http://controller:35357
auth_plugin = password
project_domain_id = default
user_domain_id = default
project_name = service
username = nova
password = ubuntu
[glance]
host = controller
[oslo_concurrency]
lock_path = /var/lib/nova/tmp

データベースを初期化します。
$ sudo su -s /bin/sh -c "nova-manage db sync" nova

2016-08-25 15:41:54.853 5014 INFO migrate.versioning.api [-] done
2016-08-25 15:41:54.854 5014 INFO migrate.versioning.api [-] 292 -> 293... 
2016-08-25 15:41:55.335 5014 INFO migrate.versioning.api [-] done
2016-08-25 15:41:55.336 5014 INFO migrate.versioning.api [-] 293 -> 294... 
2016-08-25 15:41:55.569 5014 INFO migrate.versioning.api [-] done
2016-08-25 15:41:55.570 5014 INFO migrate.versioning.api [-] 294 -> 295... 
2016-08-25 15:41:55.662 5014 INFO migrate.versioning.api [-] done
2016-08-25 15:41:55.663 5014 INFO migrate.versioning.api [-] 295 -> 296... 
2016-08-25 15:41:55.699 5014 INFO migrate.versioning.api [-] done
2016-08-25 15:41:55.699 5014 INFO migrate.versioning.api [-] 296 -> 297... 
2016-08-25 15:41:56.080 5014 INFO migrate.versioning.api [-] done
2016-08-25 15:41:56.081 5014 INFO migrate.versioning.api [-] 297 -> 298... 
2016-08-25 15:41:56.584 5014 INFO migrate.versioning.api [-] done
2016-08-25 15:41:56.585 5014 INFO migrate.versioning.api [-] 298 -> 299... 
2016-08-25 15:41:56.951 5014 INFO migrate.versioning.api [-] done
2016-08-25 15:41:56.952 5014 INFO migrate.versioning.api [-] 299 -> 300... 
2016-08-25 15:41:57.335 5014 INFO migrate.versioning.api [-] done
2016-08-25 15:41:57.336 5014 INFO migrate.versioning.api [-] 300 -> 301... 
2016-08-25 15:41:58.158 5014 INFO migrate.versioning.api [-] done
2016-08-25 15:41:58.158 5014 INFO migrate.versioning.api [-] 301 -> 302... 
2016-08-25 15:41:58.233 5014 INFO migrate.versioning.api [-] done

Novaの設定を反映させるため、Novaを再起動します。
$ sudo service nova-api restart

nova-api stop/waiting
nova-api start/running, process 5070

$ sudo service nova-cert restart

nova-cert stop/waiting
nova-cert start/running, process 5114

$ sudo service nova-consoleauth restart

nova-consoleauth stop/waiting
nova-consoleauth start/running, process 5144

$ sudo service nova-scheduler restart

nova-scheduler stop/waiting
nova-scheduler start/running, process 5173

$ sudo service nova-conductor restart

nova-conductor stop/waiting
nova-conductor start/running, process 5205

$ sudo service nova-novncproxy restart

nova-novncproxy stop/waiting
nova-novncproxy start/running, process 5243

エラーが起きていないことをログで確認します。
更新されるログをリアルタイムで確認するためにtailfコマンドを使用します。
$ tailf /var/log/nova/nova-api.log

2016-08-25 15:42:24.164 5070 DEBUG oslo_service.service [-] cinder.http_retries            = 3 log_opt_values /usr/lib/python2.7/dist-packages/oslo_config/cfg.py:2233
2016-08-25 15:42:24.165 5070 DEBUG oslo_service.service [-] cinder.insecure                = False log_opt_values /usr/lib/python2.7/dist-packages/oslo_config/cfg.py:2233
2016-08-25 15:42:24.165 5070 DEBUG oslo_service.service [-] cinder.keyfile                 = None log_opt_values /usr/lib/python2.7/dist-packages/oslo_config/cfg.py:2233
2016-08-25 15:42:24.165 5070 DEBUG oslo_service.service [-] cinder.os_region_name          = None log_opt_values /usr/lib/python2.7/dist-packages/oslo_config/cfg.py:2233
2016-08-25 15:42:24.166 5070 DEBUG oslo_service.service [-] cinder.timeout                 = None log_opt_values /usr/lib/python2.7/dist-packages/oslo_config/cfg.py:2233
2016-08-25 15:42:24.166 5070 DEBUG oslo_service.service [-] oslo_versionedobjects.fatal_exception_format_errors = False log_opt_values /usr/lib/python2.7/dist-packages/oslo_config/cfg.py:2233
2016-08-25 15:42:24.166 5070 DEBUG oslo_service.service [-] osapi_v21.enabled              = True log_opt_values /usr/lib/python2.7/dist-packages/oslo_config/cfg.py:2233
2016-08-25 15:42:24.167 5070 DEBUG oslo_service.service [-] osapi_v21.extensions_blacklist = [] log_opt_values /usr/lib/python2.7/dist-packages/oslo_config/cfg.py:2233
2016-08-25 15:42:24.167 5070 DEBUG oslo_service.service [-] osapi_v21.extensions_whitelist = [] log_opt_values /usr/lib/python2.7/dist-packages/oslo_config/cfg.py:2233
2016-08-25 15:42:24.167 5070 DEBUG oslo_service.service [-] ******************************************************************************** log_opt_values /usr/lib/python2.7/dist-packages/oslo_config/cfg.py:2235

$ tailf /var/log/nova/nova-cert.log

2016-08-25 15:42:36.724 5114 DEBUG oslo_service.service [req-6286f455-dd07-4251-a939-60a0a349793f - - - - -] osapi_v21.extensions_whitelist = [] log_opt_values /usr/lib/python2.7/dist-packages/oslo_config/cfg.py:2233
2016-08-25 15:42:36.725 5114 DEBUG oslo_service.service [req-6286f455-dd07-4251-a939-60a0a349793f - - - - -] ******************************************************************************** log_opt_values /usr/lib/python2.7/dist-packages/oslo_config/cfg.py:2235
2016-08-25 15:42:36.725 5114 INFO nova.service [-] Starting cert node (version 12.0.4)
2016-08-25 15:42:36.727 5114 DEBUG oslo_db.api [req-38dae4ad-868b-4b25-bf39-1c2136f6d6a8 - - - - -] Loading backend 'sqlalchemy' from 'nova.db.sqlalchemy.api' _load_backend /usr/lib/python2.7/dist-packages/oslo_db/api.py:230
2016-08-25 15:42:36.747 5114 DEBUG oslo_db.sqlalchemy.engines [req-38dae4ad-868b-4b25-bf39-1c2136f6d6a8 - - - - -] MySQL server mode set to STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION _check_effective_sql_mode /usr/lib/python2.7/dist-packages/oslo_db/sqlalchemy/engines.py:256
2016-08-25 15:42:36.927 5114 DEBUG nova.service [req-38dae4ad-868b-4b25-bf39-1c2136f6d6a8 - - - - -] Creating RPC server for service cert start /usr/lib/python2.7/dist-packages/nova/service.py:184
2016-08-25 15:42:36.937 5114 INFO oslo.messaging._drivers.impl_rabbit [req-38dae4ad-868b-4b25-bf39-1c2136f6d6a8 - - - - -] Connecting to AMQP server on controller:5672
2016-08-25 15:42:36.947 5114 INFO oslo.messaging._drivers.impl_rabbit [req-38dae4ad-868b-4b25-bf39-1c2136f6d6a8 - - - - -] Connected to AMQP server on controller:5672
2016-08-25 15:42:36.959 5114 DEBUG nova.service [req-38dae4ad-868b-4b25-bf39-1c2136f6d6a8 - - - - -] Join ServiceGroup membership for this service cert start /usr/lib/python2.7/dist-packages/nova/service.py:202
2016-08-25 15:42:36.960 5114 DEBUG nova.servicegroup.drivers.db [req-38dae4ad-868b-4b25-bf39-1c2136f6d6a8 - - - - -] DB_Driver: join new ServiceGroup member controller to the cert group, service = <nova.service.Service object at 0x7f6a02d98490> join /usr/lib/python2.7/dist-packages/nova/servicegroup/drivers/db.py:48

$ tailf /var/log/nova/nova-consoleauth.log

2016-08-25 15:42:50.672 5144 DEBUG oslo_service.service [req-a181ae40-fed3-4bf2-a5d6-97aaf16e7d87 - - - - -] osapi_v21.extensions_whitelist = [] log_opt_values /usr/lib/python2.7/dist-packages/oslo_config/cfg.py:2233
2016-08-25 15:42:50.673 5144 DEBUG oslo_service.service [req-a181ae40-fed3-4bf2-a5d6-97aaf16e7d87 - - - - -] ******************************************************************************** log_opt_values /usr/lib/python2.7/dist-packages/oslo_config/cfg.py:2235
2016-08-25 15:42:50.673 5144 INFO nova.service [-] Starting consoleauth node (version 12.0.4)
2016-08-25 15:42:50.675 5144 DEBUG oslo_db.api [req-6d9a2947-0282-46d7-90b9-d4eaed2d292d - - - - -] Loading backend 'sqlalchemy' from 'nova.db.sqlalchemy.api' _load_backend /usr/lib/python2.7/dist-packages/oslo_db/api.py:230
2016-08-25 15:42:50.694 5144 DEBUG oslo_db.sqlalchemy.engines [req-6d9a2947-0282-46d7-90b9-d4eaed2d292d - - - - -] MySQL server mode set to STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION _check_effective_sql_mode /usr/lib/python2.7/dist-packages/oslo_db/sqlalchemy/engines.py:256
2016-08-25 15:42:50.925 5144 DEBUG nova.service [req-6d9a2947-0282-46d7-90b9-d4eaed2d292d - - - - -] Creating RPC server for service consoleauth start /usr/lib/python2.7/dist-packages/nova/service.py:184
2016-08-25 15:42:50.936 5144 INFO oslo.messaging._drivers.impl_rabbit [req-6d9a2947-0282-46d7-90b9-d4eaed2d292d - - - - -] Connecting to AMQP server on controller:5672
2016-08-25 15:42:50.947 5144 INFO oslo.messaging._drivers.impl_rabbit [req-6d9a2947-0282-46d7-90b9-d4eaed2d292d - - - - -] Connected to AMQP server on controller:5672
2016-08-25 15:42:50.963 5144 DEBUG nova.service [req-6d9a2947-0282-46d7-90b9-d4eaed2d292d - - - - -] Join ServiceGroup membership for this service consoleauth start /usr/lib/python2.7/dist-packages/nova/service.py:202
2016-08-25 15:42:50.964 5144 DEBUG nova.servicegroup.drivers.db [req-6d9a2947-0282-46d7-90b9-d4eaed2d292d - - - - -] DB_Driver: join new ServiceGroup member controller to the consoleauth group, service = <nova.service.Service object at 0x7fa191a6c3d0> join /usr/lib/python2.7/dist-packages/nova/servicegroup/drivers/db.py:48

$ tailf /var/log/nova/nova-scheduler.log

2016-08-25 15:43:04.819 5173 DEBUG nova.service [req-1b1e1bf7-458a-4248-9bd9-07b3c27515be - - - - -] Join ServiceGroup membership for this service scheduler start /usr/lib/python2.7/dist-packages/nova/service.py:202
2016-08-25 15:43:04.820 5173 DEBUG nova.servicegroup.drivers.db [req-1b1e1bf7-458a-4248-9bd9-07b3c27515be - - - - -] DB_Driver: join new ServiceGroup member controller to the scheduler group, service = <nova.service.Service object at 0x7f3ef9d8f550> join /usr/lib/python2.7/dist-packages/nova/servicegroup/drivers/db.py:48
2016-08-25 15:44:02.825 5173 DEBUG oslo_service.periodic_task [req-447bef99-5ccc-4423-8fc7-2d885852da53 - - - - -] Running periodic task SchedulerManager._run_periodic_tasks run_periodic_tasks /usr/lib/python2.7/dist-packages/oslo_service/periodic_task.py:213
2016-08-25 15:44:04.048 5173 DEBUG oslo_service.periodic_task [req-447bef99-5ccc-4423-8fc7-2d885852da53 - - - - -] Running periodic task SchedulerManager._expire_reservations run_periodic_tasks /usr/lib/python2.7/dist-packages/oslo_service/periodic_task.py:213
2016-08-25 15:45:02.830 5173 DEBUG oslo_service.periodic_task [req-447bef99-5ccc-4423-8fc7-2d885852da53 - - - - -] Running periodic task SchedulerManager._run_periodic_tasks run_periodic_tasks /usr/lib/python2.7/dist-packages/oslo_service/periodic_task.py:213
2016-08-25 15:45:05.049 5173 DEBUG oslo_service.periodic_task [req-447bef99-5ccc-4423-8fc7-2d885852da53 - - - - -] Running periodic task SchedulerManager._expire_reservations run_periodic_tasks /usr/lib/python2.7/dist-packages/oslo_service/periodic_task.py:213
2016-08-25 15:46:03.832 5173 DEBUG oslo_service.periodic_task [req-447bef99-5ccc-4423-8fc7-2d885852da53 - - - - -] Running periodic task SchedulerManager._run_periodic_tasks run_periodic_tasks /usr/lib/python2.7/dist-packages/oslo_service/periodic_task.py:213
2016-08-25 15:46:06.052 5173 DEBUG oslo_service.periodic_task [req-447bef99-5ccc-4423-8fc7-2d885852da53 - - - - -] Running periodic task SchedulerManager._expire_reservations run_periodic_tasks /usr/lib/python2.7/dist-packages/oslo_service/periodic_task.py:213
2016-08-25 15:47:05.830 5173 DEBUG oslo_service.periodic_task [req-447bef99-5ccc-4423-8fc7-2d885852da53 - - - - -] Running periodic task SchedulerManager._run_periodic_tasks run_periodic_tasks /usr/lib/python2.7/dist-packages/oslo_service/periodic_task.py:213
2016-08-25 15:47:06.052 5173 DEBUG oslo_service.periodic_task [req-447bef99-5ccc-4423-8fc7-2d885852da53 - - - - -] Running periodic task SchedulerManager._expire_reservations run_periodic_tasks /usr/lib/python2.7/dist-packages/oslo_service/periodic_task.py:213

$ tailf /var/log/nova/nova-conductor.log

2016-08-25 15:43:18.839 5213 DEBUG nova.service [req-151c8fe5-0564-4353-ac44-0bfa34c4bf13 - - - - -] Creating RPC server for service conductor start /usr/lib/python2.7/dist-packages/nova/service.py:184
2016-08-25 15:43:18.861 5213 INFO oslo.messaging._drivers.impl_rabbit [req-151c8fe5-0564-4353-ac44-0bfa34c4bf13 - - - - -] Connecting to AMQP server on controller:5672
2016-08-25 15:43:18.886 5213 INFO oslo.messaging._drivers.impl_rabbit [req-151c8fe5-0564-4353-ac44-0bfa34c4bf13 - - - - -] Connected to AMQP server on controller:5672
2016-08-25 15:43:18.908 5213 DEBUG nova.service [req-151c8fe5-0564-4353-ac44-0bfa34c4bf13 - - - - -] Join ServiceGroup membership for this service conductor start /usr/lib/python2.7/dist-packages/nova/service.py:202
2016-08-25 15:43:18.909 5213 DEBUG nova.servicegroup.drivers.db [req-151c8fe5-0564-4353-ac44-0bfa34c4bf13 - - - - -] DB_Driver: join new ServiceGroup member controller to the conductor group, service = <nova.service.Service object at 0x7fc802f89410> join /usr/lib/python2.7/dist-packages/nova/servicegroup/drivers/db.py:48
2016-08-25 15:43:18.909 5214 DEBUG nova.service [req-7a552238-e233-47f8-9d9a-81e033ff76f1 - - - - -] Creating RPC server for service conductor start /usr/lib/python2.7/dist-packages/nova/service.py:184
2016-08-25 15:43:18.923 5214 INFO oslo.messaging._drivers.impl_rabbit [req-7a552238-e233-47f8-9d9a-81e033ff76f1 - - - - -] Connecting to AMQP server on controller:5672
2016-08-25 15:43:18.932 5214 INFO oslo.messaging._drivers.impl_rabbit [req-7a552238-e233-47f8-9d9a-81e033ff76f1 - - - - -] Connected to AMQP server on controller:5672
2016-08-25 15:43:18.942 5214 DEBUG nova.service [req-7a552238-e233-47f8-9d9a-81e033ff76f1 - - - - -] Join ServiceGroup membership for this service conductor start /usr/lib/python2.7/dist-packages/nova/service.py:202
2016-08-25 15:43:18.943 5214 DEBUG nova.servicegroup.drivers.db [req-7a552238-e233-47f8-9d9a-81e033ff76f1 - - - - -] DB_Driver: join new ServiceGroup member controller to the conductor group, service = <nova.service.Service object at 0x7fc802f89410> join /usr/lib/python2.7/dist-packages/nova/servicegroup/drivers/db.py:48

$ tailf /var/log/nova/nova-novncproxy.log

2016-08-25 13:50:24.575 1192 INFO nova.console.websocketproxy [-]   - No SSL/TLS support (no cert file)
2016-08-25 13:50:24.577 1192 INFO nova.console.websocketproxy [-]   - proxying from 0.0.0.0:6080 to None:None
2016-08-25 15:43:29.443 1192 INFO nova.console.websocketproxy [-] Got SIGTERM, exiting
2016-08-25 15:43:29.444 1192 INFO nova.console.websocketproxy [-] In exit
2016-08-25 15:43:30.138 5243 INFO nova.console.websocketproxy [-] WebSocket server settings:
2016-08-25 15:43:30.138 5243 INFO nova.console.websocketproxy [-]   - Listen on 0.0.0.0:6080
2016-08-25 15:43:30.139 5243 INFO nova.console.websocketproxy [-]   - Flash security policy server
2016-08-25 15:43:30.139 5243 INFO nova.console.websocketproxy [-]   - Web server (no directory listings). Web root: /usr/share/novnc
2016-08-25 15:43:30.139 5243 INFO nova.console.websocketproxy [-]   - No SSL/TLS support (no cert file)
2016-08-25 15:43:30.141 5243 INFO nova.console.websocketproxy [-]   - proxying from 0.0.0.0:6080 to None:None

使用しないデータベースファイルを削除します。
$ sudo rm -f /var/lib/nova/nova.sqlite

コントローラノードの準備はできました。

コンピュートノードにNovaをインストールしよう

まずは、システムをアップデートしておきます!
$ sudo apt-get update
$ sudo apt-get dist-upgrade

Liberty向けUbuntu Cloud Archiveリポジトリを登録しましょう。
$ sudo apt-get install -y software-properties-common
$ sudo add-apt-repository cloud-archive:liberty

再び、システムをアップデートします。
$ sudo apt-get update
$ sudo apt-get dist-upgrade

OpenStackクライアントと必要なパッケージをインストールをします。
$ sudo apt-get install -y python-openstackclient chrony python-pymysql

時刻同期サーバーを設定します。
$ sudo vi /etc/chrony/chrony.conf

#NTPサーバーを設定する。
server controller iburst

$ cat /etc/chrony/chrony.conf | grep controller

server controller iburst

時刻同期サーバーを再起動します。
$ sudo service chrony restart

Restarting time daemon: Starting /usr/sbin/chronyd...
chronyd is running and online.

時刻同期サーバーの動作を確認します。
$ sudo chronyc sources

210 Number of sources = 1
MS Name/IP address         Stratum Poll Reach LastRx Last sample
===============================================================================
^* controller                    2   6    17     2   +728us[+1643us] +/-   25ms

管理者用の環境設定ファイルを作成します。
$ vi ~/admin-openrc.sh

#Keysoneのリージョン名を設定する。
export OS_REGION_NAME=RegionOne
#KeystoneのプロジェクトドメインIDを設定する。
export OS_PROJECT_DOMAIN_ID=default
#KeystoneのユーザードメインIDを設定する。
export OS_USER_DOMAIN_ID=default
#Keystoneのプロジェクト名を設定する。
export OS_PROJECT_NAME=admin
#Keystoneのテナント名を設定する。
export OS_TENANT_NAME=admin
#Keystoneへアクセスするユーザー名を設定する。
export OS_USERNAME=admin
#Keystoneへアクセスするパスワードを設定する。
export OS_PASSWORD=ubuntu
#Keystoneの管理用エンドポイントを設定する。
export OS_AUTH_URL=http://controller:35357/v3
#KeystoneのAPIバージョンを設定する。
export OS_IDENTITY_API_VERSION=3
#GlanceのAPIバージョンを設定する。
export OS_IMAGE_API_VERSION=2
#プロンプトを設定する。
export PS1='\u@\h \W(admin)\$ '

$ cat ~/admin-openrc.sh

export OS_REGION_NAME=RegionOne
export OS_PROJECT_DOMAIN_ID=default
export OS_USER_DOMAIN_ID=default
export OS_PROJECT_NAME=admin
export OS_TENANT_NAME=admin
export OS_USERNAME=admin
export OS_PASSWORD=ubuntu
export OS_AUTH_URL=http://controller:35357/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2
export PS1='\u@\h \W(admin)\$ '

Novaと必要なパッケージをインストールします。
$ sudo apt-get install -y nova-compute sysfsutils

コンピュートノードのNovaを設定しよう

nova.confの設定を行います。
$ sudo vi /etc/nova/nova.conf

[DEFAULT]
#DEBUGレベルのロギングを有効にする。
debug = True
#冗長ロギングを有効にする。
verbose=True
#dhcpbridgeのflagfilesのあるディレクトリーを設定する。
dhcpbridge_flagfile=/etc/nova/nova.conf
#nova-dhcpbridgeの実行ファイルのあるディレクトリーを設定する。
dhcpbridge=/usr/bin/nova-dhcpbridge
#Novaのログファイルのあるディレクトリーを設定する。
logdir=/var/log/nova
#Novaの状態を保持するトップディレクトリーを設定する。
state_path=/var/lib/nova
#lock_path=/var/lock/nova
#仮想マシンインスタンスの停止をDHCPサーバーに通知するように設定する。
force_dhcp_release=True
#KVM/QEMUのブリッジインターフェースとしてvirtio(準仮想化ドライバ)を使用する。
libvirt_use_virtio_for_bridges=True
#仮想マシンインスタンスに割り当てられたIPアドレスを戻すように設定する。
ec2_private_dns_show_ip=True
#nova-apiが使用するPasteDeployの設定ファイル名を設定する。
api_paste_config=/etc/nova/api-paste.ini
#デフォルトで使用可能なAPIのリストを設定する。
enabled_apis=ec2,osapi_compute,metadata
#使用するAMQPクライアントを設定する。
rpc_backend = rabbit
#認証サービスへのアクセス方法をKeystoneに設定する。
auth_strategy = keystone
#コンピュートノードのIPアドレスを設定する。
my_ip = 10.0.0.102
#ネットワークAPIクラスのクラス名を設定する。
network_api_class = nova.network.neutronv2.api.API
#セキュリティAPIクラスのクラス名を設定する。
security_group_api = neutron
#イーサネットデバイスを作成するために使用するデバイスドライバーを設定する。
linuxnet_interface_driver = nova.network.linux_net.NeutronLinuxBridgeInterfaceDriver
#ファイアウォールを無効化にする。
firewall_driver = nova.virt.firewall.NoopFirewallDriver

[vnc]
#VNCを有効にする
enabled = True
#VNCサーバーのIPアドレスを設定する。
vncserver_listen = 0.0.0.0
#VNCクライアントのIPアドレスを設定する。
vncserver_proxyclient_address = 10.0.0.102
#VNCクライアントが仮想マシンインスタンスに接続するブラウザーのアドレスを設定する。
novncproxy_base_url = http://controller:6080/vnc_auto.html
#日本語キーボードを設定する。
vnc_keymap = ja

[oslo_messaging_rabbit]
#Rabbitサーバーのホスト名を設定する。
rabbit_host = controller
#Rabbitサーバーへアクセスするユーザー名を設定する。
rabbit_userid = openstack
#Rabbitサーバーへアクセスするパスワードを設定する。
rabbit_password = ubuntu

[keystone_authtoken]
#Keystoneサービス用エンドポイントを設定する。
auth_uri = http://controller:5000
#Keystone管理用エンドポイントを設定する。
auth_url = http://controller:35357
#パスワード認証に設定する。
auth_plugin = password
#KeystoneのプロジェクトドメインIDを設定する。
project_domain_id = default
#KeystoneのユーザードメインIDを設定する。
user_domain_id = default
#Keystoneのプロジェクト名を設定する。
project_name = service
#Keystoneへアクセスするユーザー名を設定する。
username = nova
#Keystoneへアクセスするパスワードを設定する。
password = ubuntu

[glance]
#Glanceのホスト名を設定する。
host = controller

[oslo_concurrency]
#ロックパスを設定する。
lock_path = /var/lib/nova/tmp

次のコマンドを実行して正しく設定を行ったか確認しましょう。
$ sudo cat /etc/nova/nova.conf | grep -v "^\s*$" | grep -v "^\s*#"

[DEFAULT]
debug = True
verbose=True
dhcpbridge_flagfile=/etc/nova/nova.conf
dhcpbridge=/usr/bin/nova-dhcpbridge
logdir=/var/log/nova
state_path=/var/lib/nova
force_dhcp_release=True
libvirt_use_virtio_for_bridges=True
ec2_private_dns_show_ip=True
api_paste_config=/etc/nova/api-paste.ini
enabled_apis=ec2,osapi_compute,metadata
rpc_backend = rabbit
auth_strategy = keystone
my_ip = 10.0.0.102
network_api_class = nova.network.neutronv2.api.API
security_group_api = neutron
linuxnet_interface_driver = nova.network.linux_net.NeutronLinuxBridgeInterfaceDriver
firewall_driver = nova.virt.firewall.NoopFirewallDriver
[vnc]
enabled = True
vncserver_listen = 0.0.0.0
vncserver_proxyclient_address = 10.0.0.102
novncproxy_base_url = http://controller:6080/vnc_auto.html
vnc_keymap = ja
[oslo_messaging_rabbit]
rabbit_host = controller
rabbit_userid = openstack
rabbit_password = ubuntu
[keystone_authtoken]
auth_uri = http://controller:5000
auth_url = http://controller:35357
auth_plugin = password
project_domain_id = default
user_domain_id = default
project_name = service
username = nova
password = ubuntu
[glance]
host = controller
[oslo_concurrency]
lock_path = /var/lib/nova/tmp

仮想化環境がKVMで動作しているか確認します。
$ cat /proc/cpuinfo | egrep 'vmx|svm' | wc -l

0

0と表示されるので、CPUの仮想化支援機能であるvmxやsvmが動作していません。
これは、ホストOS型の仮想化ソフトウェアであるVirtualBoxを使用しているからであり、KVMなどのネイティブなハイパーバイザを使用した際には有効にすることもできます。

今回は仮想化支援機能を必要としないQEMUを使用することにします。(動作はかなり重くなります)
$ sudo vi /etc/nova/nova-compute.conf

#仮想化環境を設定する。
virt_type=qemu

$ sudo cat /etc/nova/nova-compute.conf | grep virt_type

virt_type=qemu

Novaの設定を反映させるため、Novaを再起動します。
$ sudo service nova-compute restart

nova-compute stop/waiting
nova-compute start/running, process 2296

エラーが起きていないことをログで確認します。
更新されるログをリアルタイムで確認するためにtailfコマンドを使用します。
$ tailf /var/log/nova/nova-compute.log

2016-08-25 16:05:42.710 2296 INFO nova.compute.resource_tracker [req-4c9e7cbe-cc44-4289-babd-afe47b707015 - - - - -] Total usable vcpus: 1, total allocated vcpus: 0
2016-08-25 16:05:42.711 2296 INFO nova.compute.resource_tracker [req-4c9e7cbe-cc44-4289-babd-afe47b707015 - - - - -] Final resource view: name=compute phys_ram=2001MB used_ram=512MB phys_disk=194GB used_disk=0GB total_vcpus=1 used_vcpus=0 pci_stats=None
2016-08-25 16:05:42.753 2296 INFO nova.compute.resource_tracker [req-4c9e7cbe-cc44-4289-babd-afe47b707015 - - - - -] Compute_service record updated for compute:compute
2016-08-25 16:05:42.754 2296 DEBUG oslo_concurrency.lockutils [req-4c9e7cbe-cc44-4289-babd-afe47b707015 - - - - -] Lock "compute_resources" released by "nova.compute.resource_tracker._update_available_resource" :: held 0.208s inner /usr/lib/python2.7/dist-packages/oslo_concurrency/lockutils.py:265
2016-08-25 16:05:42.755 2296 DEBUG nova.service [req-4c9e7cbe-cc44-4289-babd-afe47b707015 - - - - -] Creating RPC server for service compute start /usr/lib/python2.7/dist-packages/nova/service.py:184
2016-08-25 16:05:43.015 2296 INFO oslo.messaging._drivers.impl_rabbit [req-4c9e7cbe-cc44-4289-babd-afe47b707015 - - - - -] Connecting to AMQP server on controller:5672
2016-08-25 16:05:43.027 2296 INFO oslo.messaging._drivers.impl_rabbit [req-4c9e7cbe-cc44-4289-babd-afe47b707015 - - - - -] Connected to AMQP server on controller:5672
2016-08-25 16:05:43.042 2296 DEBUG nova.service [req-4c9e7cbe-cc44-4289-babd-afe47b707015 - - - - -] Join ServiceGroup membership for this service compute start /usr/lib/python2.7/dist-packages/nova/service.py:202
2016-08-25 16:05:43.043 2296 DEBUG nova.servicegroup.drivers.db [req-4c9e7cbe-cc44-4289-babd-afe47b707015 - - - - -] DB_Driver: join new ServiceGroup member compute to the compute group, service = <nova.service.Service object at 0x7f286ca2f890> join /usr/lib/python2.7/dist-packages/nova/servicegroup/drivers/db.py:48
2016-08-25 16:05:53.045 2296 DEBUG oslo_service.periodic_task [req-48f06926-03a5-4e19-8115-20e335900c7f - - - - -] Running periodic task ComputeManager._sync_power_states run_periodic_tasks /usr/lib/python2.7/dist-packages/oslo_service/periodic_task.py:213

コンピュートノードの準備はできました。

Novaを動作確認しよう

コントローラノードとコンピュートノードが相互に接続できているか確認します。
$ source admin-openrc.sh
$ openstack compute service list -c Binary -c Host -c State

ubuntu@compute:~$ source admin-openrc.sh
ubuntu@compute ~(admin)$ openstack compute service list -c Binary -c Host -c St ate
+------------------+------------+-------+
| Binary           | Host       | State |
+------------------+------------+-------+
| nova-cert        | controller | up    |
| nova-consoleauth | controller | up    |
| nova-scheduler   | controller | up    |
| nova-conductor   | controller | up    |
| nova-compute     | compute    | up    |
+------------------+------------+-------+

コントローラノードよりコンピュートノードのハイパーバイザを取得できることを確認します。
controller$ openstack hypervisor list

+----+---------------------+
| ID | Hypervisor Hostname |
+----+---------------------+
|  1 | compute             |
+----+---------------------+

Identityサービスのエンドポイントを一覧表示して、Identityサービスへの接続性を確認します。
$ nova endpoints

+-----------+----------------------------------+
| glance    | Value                            |
+-----------+----------------------------------+
| id        | 16f14071417a4cfeb1cfe7ca69755f25 |
| interface | public                           |
| region    | RegionOne                        |
| region_id | RegionOne                        |
| url       | http://controller:9292           |
+-----------+----------------------------------+
+-----------+------------------------------------------------------------+
| nova      | Value                                                      |
+-----------+------------------------------------------------------------+
| id        | 1e4d3a3586804cf1909ad89ee8b2c488                           |
| interface | admin                                                      |
| region    | RegionOne                                                  |
| region_id | RegionOne                                                  |
| url       | http://controller:8774/v2/8a6217d667f74710815352a3dabe9e24 |
+-----------+------------------------------------------------------------+
+-----------+------------------------------------------------------------+
| cinder    | Value                                                      |
+-----------+------------------------------------------------------------+
| id        | 88d35d2e98894445ac718ca881c1be86                           |
| interface | public                                                     |
| region    | RegionOne                                                  |
| region_id | RegionOne                                                  |
| url       | http://controller:8776/v1/8a6217d667f74710815352a3dabe9e24 |
+-----------+------------------------------------------------------------+
+-----------+----------------------------------+
| keystone  | Value                            |
+-----------+----------------------------------+
| id        | 4b25cac8e52b42b1b0af6b57ad336875 |
| interface | admin                            |
| region    | RegionOne                        |
| region_id | RegionOne                        |
| url       | http://controller:35357/v2.0     |
+-----------+----------------------------------+
+-----------+------------------------------------------------------------+
| cinderv2  | Value                                                      |
+-----------+------------------------------------------------------------+
| id        | 0de33db9f0a140b682c5794adf724d5e                           |
| interface | public                                                     |
| region    | RegionOne                                                  |
| region_id | RegionOne                                                  |
| url       | http://controller:8776/v2/8a6217d667f74710815352a3dabe9e24 |
+-----------+------------------------------------------------------------+

イメージサービスカタログにあるイメージを一覧表示して、イメージサービスへの接続性を確認します。
$ nova image-list

+--------------------------------------+--------+--------+--------+
| ID                                   | Name   | Status | Server |
+--------------------------------------+--------+--------+--------+
| cb03e667-f570-4fd5-90d1-78aeb66504f0 | cirros | ACTIVE |        |
+--------------------------------------+--------+--------+--------+

これで、コントローラノードとコンピュートノードにインストールしたNovaが動作していることを確認できました。

おわりに

Keystone、Swift、Glance、Cinderに引き続きNovaの手動インストールを紹介しました。
Neutronをインストールしていないので、Novaを利用して、仮想マシンインスタンスを起動することができないところが残念でした。次回は、コアコンポーネントの1つNeutronについてご紹介し、仮想マシンインスタンスを起動していきたいと思っています。

コントローラノードで「$ sudo apt-get dist-upgrade」を行うと再起動できないというトラブルがありました。
ご注意ください。NOVINS-020.PNG

今回も最後までお付き合いを頂き、ありがとうございました。
文:河合紀彦

photo-1441742917377-57f78ee0e582.jpg

参考サイト

(Liberty版)OpenStack インストールガイド Ubuntu 14.04 (LTS)版 - Compute サービス

OpenStack構築手順Liberty版



OpenStackと同じカテゴリーの記事


OpenStack手動インストールと同じカテゴリーの記事


カテゴリを追加と同じカテゴリーの記事



RSS
最近のエントリー
2017.4.21
【検証自動化】第6回 AT-CLabを使ってみる
2017.4.21
【OSSチャレンジ】第4回 Elasticsearch紹介
2017.4. 7
【OSC2017 Tokyo/Spring】OpenStackを宇宙で!?
2017.3.28
【OSSチャレンジ】 第3回 Bacula紹介:後編
2017.3. 9
【OpenStackチャレンジ】 第29回 Ocata紹介編
2017.2.24
【OSSチャレンジ】 第2回 Docker紹介編
2017.2.20
【OSSチャレンジ】 第1回 Bacula紹介:前編
2017.2. 1
【体験記】最後のフロンティア!? ~ミャンマー 体験記~
2017.1.18
【データベース】pgpool-IIによるDBサーバ負荷分散
2016.12.16
【ログ解析】第2回Splunkのログ解析
2016.12. 9
LPIC304 体験記
2016.11.19
【OSC2016 Tokyo/Fall】VRとOpenStackを連携
2016.11.11
【次世代通信技術】 第1回 5G入門編
2016.10.28
【ログ解析】第1回Splunkの紹介と起動
2016.10.21
【OpenStackチャレンジ】 第28回 Stackalytics登録編
2016.10.14
【OpenStackチャレンジ】 第27回 OpenStack Newton紹介編
2016.10. 7
【検証自動化】第5回 Selenium IDEで記録したテストをJenkinsのジョブから実行する ~PC一台でブラウザテストを自動化~【後編】
2016.9.30
【OpenStackチャレンジ】 第26回 Neutron環境構築編
2016.9.23
【いまさら聞けない!エンジニアの基本シリーズ】 第6回 きれいなログにするためのLinuxお作法
2016.9.16
【OpenStackチャレンジ】 第25回 Nova環境構築編
2016.9. 9
【OpenStackチャレンジ】 第24回 Cinder環境構築編
2016.9. 2
【OpenStackチャレンジ】 第23回 OpenStackコミュニティ~翻訳編
2016.8.26
【OpenStackチャレンジ】 第22回 Glance環境構築編
2016.8.19
【検証自動化】第4回 Selenium IDEでテストケースを記録・実行する ~PC一台でブラウザテストを自動化~【前編】
2016.8. 9
【OpenStackチャレンジ】 第21回 OpenStackコミュニティ 日本語翻訳チーム参加編
2016.8. 5
【OpenStackチャレンジ】 第20回 構成管理ツール「Ansible」を用いたOpenStack上のサーバ構築
2016.7.29
【検証自動化】第3回 IT検証フォーラム2016に出展しました!
2016.7.22
【OpenStackチャレンジ】 第19回 OpenStack Upstream Training編
2016.7.15
【検証自動化】第2回 TestShell+TestCenter連携編
2016.7. 8
【OpenStackチャレンジ】 第18回 HEAT紹介編
2016.7. 4
QNAP紹介(Dockerコンテナ&OpenStack Swift連携)
2016.6.26
【いまさら聞けない!エンジニアの基本シリーズ】 第5回 GitHubを使いこなそう
2016.6.19
【OpenStackチャレンジ】 第17回 Zabbix環境構築編
2016.6.12
【検証自動化】第1回 TestShell編
2016.6. 5
【OpenStackチャレンジ】 第16回 Mirantis 「OpenStack FUEL管理」セミナー紹介編
2016.5.29
【OpenStackチャレンジ】 第15回 Swift環境構築編
2016.5.22
【OpenStackチャレンジ】 第14回 Keystone環境構築編
2016.5.15
【OpenStackチャレンジ】 第13回 Mirantis OpenStack紹介編
2016.5. 2
【OpenStackチャレンジ】 第12回DevStack~ Ironic環境構築編
2016.4.24
【OpenStackチャレンジ】 第11回 インフラエンジニア必見のOpenStackセミナーを開催しました!
2016.4.17
【OpenStackチャレンジ】 第10回 OpenStack Mitaka紹介編
2016.4.10
【Linuxを使いこなす】 CentOSのローカルリポジトリを構築しよう
2016.4. 3
【OpenStackチャレンジ】 第9回 仮想マシンが起動するコンピュートノードを指定してみよう
2016.3.29
【OpenStack チャレンジ】 第8回 ゲストマシンの性能比較をしてみました!
2016.3.19
【OSC2016】第3回 ChatOpsでOpenStackをAPIから制御する
2016.3.12
【OSC2016】第2回Let'sChat Hubot編
2016.3. 4
【OSC2016】第1回ChatOpsの構築
2016.1.31
【OpenStackチャレンジ】 第7回 DevStack~All-In-One Single Machine編
2016.1.22
【OpenStackチャレンジ】 第6回 policy.json紹介編
2016.1.13
【OpenStackチャレンジ】 第5回 Ceilometerについて知ろう!
2016.1. 8
【いまさら聞けない!エンジニアの基本シリーズ】 第4回 VMware基本動作編
2015.12.24
【1年間ありがとう!】2015年度エンジニアブログ アクセスランキング発表!
2015.12.18
【SDNチャレンジ】 第29回 Mininet編
2015.12.14
【いまさら聞けない!エンジニアの基本シリーズ】 第3回 VMwareインストール編
2015.12.10
【OpenStackチャレンジ】第4回 ConoHaでOpenStack環境を構築!
2015.12. 4
【いまさら聞けない!エンジニアの基本シリーズ】 第2回 VirtualBox基本動作編
2015.12. 4
【OpenStackチャレンジ】 第3回 OpenDaylight(Lithium)との連携に挑戦!
2015.11.27
【いまさら聞けない!エンジニアの基本シリーズ】 第1回 VirtualBoxインストール編
2015.11.20
【SDNチャレンジ】 第28回 WiresharkでOpenFlowを解析しよう!
2015.11.15
OpenStackの技術者認定資格「OPCEL認定試験」に合格しました!
2015.11. 9
「Windows Server 2003」から「Windows Server 2012 R2」への移行に不安を抱えるお客様へ
2015.11. 6
【SDNチャレンジ】 第27回 OpenMUL編
2015.10.30
【SDNチャレンジ】 第26回 ONOS-BGPルータ編
2015.10.23
【SDNチャレンジ】 第25回 ONOS GUI編 / [告知]10/24(土),25(日)にOSCに出展します!
2015.10.16
【SDNチャレンジ】 第24回 ONOSインストール編
2015.10. 9
【SDNチャレンジ】 第23回 OpenDaylightユーザ会に参加しました/Lithiumインストール編
2015.10. 2
【SDNチャレンジ】 第22回 Trema-edge編
2015.9.29
【OpenStackチャレンジ】 番外編 10/26(月)からLPI-Japanの「OPCEL認定試験」がスタートします!
2015.9.25
【SDNチャレンジ】 第21回 POX編
2015.9.18
【OpenStackチャレンジ】 第2回 コンポーネント紹介編
2015.9.11
【SDNチャレンジ】 第20回 Floodlight編
2015.9. 4
【OpenStackチャレンジ】 第1回 OpenStackインストール編
2015.9. 3
【ウェブサイトのロードテストをする】 最終回 Siege編
2015.8.28
【SDNチャレンジ】 第19回 Raspberry Piでユースケースに挑戦!
2015.8.21
【SDNチャレンジ】 第18回 OF-Patch動作編
2015.8.13
【SDNチャレンジ】 第17回 OF-Patch紹介編
2015.8. 7
Windows10をインストールしてみました!
2015.8. 4
【ウェブサイトのロードテストをする】 第3回 Tsung編
2015.7.31
【SDNチャレンジ】 第16回 Ryuコントローラインストール編
2015.7.25
【SDNチャレンジ】 第15回 Open vSwitch性能試験編
2015.7.17
【SDNチャレンジ】 第14回 Tcpreplay編
2015.7.17
RedHat OpenStack 管理者認定試験に合格しました!
2015.7.11
【SDNチャレンジ】 第13回 Vyattaコントローラ REST API編
2015.7. 3
【SDNチャレンジ】 第12回 Vyattaコントローラ動作編
2015.7. 1
【ウェブサイトのロードテストをする】 第2回 curl-loader編
2015.6.26
【SDNチャレンジ】 第11回 OpenDaylight動作編②
2015.6.19
【SDNチャレンジ】 第10回 OpenDaylight動作編①
2015.6.18
【ウェブサイトのロードテストをする】 第1回 Apache JMeter編
2015.6.12
【SDNチャレンジ】 第9回 リピーターハブとラーニングスイッチの動作比較編
2015.6. 5
【SDNチャレンジ】 第8回 Tremasharkインストール編
2015.5.25
【SDNチャレンジ】 第7回 帯域制御・ファイアウォール・パケット書換え編
2015.5.22
【SDNチャレンジ】 第6回 ラーニングスイッチ作成編
2015.5.15
【SDNチャレンジ】 第5回 Raspberry Pi2にOpen vSwitchをインストール
2015.5. 8
【SDNチャレンジ】 第4回 5/13(水)、14(木)、15(金)の展示会にて検証自動化デモを実施します!
2015.4.27
【SDNチャレンジ】 第3回 Tremaリピーターハブ編
2015.4.21
【SDNチャレンジ】 第2回 OpenFlowコントローラ作成編
2015.4.14
【SDNチャレンジ】 第1回 Tremaインストール編
2014.8.20
【注意!】8月13日のWindows Updateを適用すると起動できなくなる事例が報告されています!
2014.5.23
約6割の企業が悩んでいるのに、対策しないんですか...?
2014.1. 9
新年あけましておめでとうございます。
2013.12.24
2013年エンジニアブログ アクセスランキング発表!
2013.12.17
コミュニケーション「活性化」の第一歩
2013.10.29
なぜ儲かっているのか分からない!?
2013.10.15
「何を変えるのか、何に変えるのか、どのように変えるのか」
2013.9.17
ブラック企業にドラッカーがアドバイスするとしたら?
2013.9. 4
蟻の穴から堤も崩れる
2013.8. 6
派閥じゃなくて、理念の元に仕事をしよう!
2013.7.31
知識は使ってナンボです!
2013.7.30
御社の相互理解度はどれくらい?
2013.7. 3
何故、それが読まれたか~上半期・エンジニアブログ閲覧数ランキング~
2013.6.12
「何」を知っているかではなく、「誰」が知っているか
2013.5.28
戦後、人間尊重の信念を貫きとおした1人の経営者がいた!
2013.5.24
健康な心が、健康な会社を作る。
2013.4.26
『社長にはもうついていけません・・・』
2013.4.23
仕事と生活をバランスさせるには?
2013.4. 2
組織に必要なのは「ゆらぎ」と・・・?
2013.3.21
代表小林、バングラディシュの地に再度降り立つ
2013.3.14
色々作っちゃいました!
2013.3. 5
「心のバランスシート」に着目していますか?
2013.2. 6
Office2013発売!で、何が変わった?
2013.2. 1
「想いを語る夕べ」が新宿から30分の場所で開催可能に!
2012.12.25
エンジニアブログ番外編:決戦は「ひなたかなた」
2012.12.19
2012年エンジニアブログ&Facebook閲覧数ランキング発表!
2012.11.29
プロセス見直すのはいいけれど...大事なこと忘れてません?
2012.10.31
「仕事」と「個々の生活」の両立~ワーク・ライフ・バランス~
2012.10.26
Windows8発売!で何が起こる?
2012.10. 9
腹が減っては打ち合わせは出来ぬ?~アドック近辺ランチスポット・カフェ編~
2012.10. 2
iPhone5発売!LTE普及には切実な背景が...
2012.9.12
「だれを選ぶか」をまず決めて、その後に「何をすべきか」を決める。
2012.8.17
会社を回すのに大事な3つの感覚。
2012.8. 7
プロジェクトはたいてい失敗に終わるんです。
2012.7.19
『目の前に壁があったら、突き破るしかねえんだよ』by鬼塚
2012.7. 2
大手企業も多数協賛する「東京経営塾」の塾長とは!?
2012.6.15
メンタルヘルスケアジャパン2012報告!
2012.6. 4
御社の理念浸透力はどれくらい?!
2012.5.14
メンタルヘルスケアジャパン2012参加のお知らせ
2012.4.27
東京スカイツリーと地デジとADOC
2012.4.17
マイボトル・マイカップキャンペーン/エンジニアブログ1周年記念
2012.3.14
第1回「想いを語る夕べ」体験会レポート~伝えることの難しさ~
2012.2.29
想いを語る夕べ報告書を新聞にしちゃいました!
2012.2. 6
月刊『ニュートップリーダー』に記事掲載&"想いを語る夕べ"体験会やります!
2012.1.31
【第4回】想いを語る夕べ~フォロー編~
2012.1.23
タニタの社員食堂は"トップの想い"から生まれた!?
2012.1.13
【第3回】想いを語る夕べ~実施編~
2011.12.27
オフィスで簡単エクササイズ!
2011.12.13
【第2回】想いを語る夕べ~準備編~
2011.11.24
【第1回】想いを語る夕べ~誕生編~
2011.11.17
「責任感だけで仕事をしていた・・・。」が「自らサービスを作り上げ、喜びを感じたい!」という熱い想いに変わるまで
2011.11. 8
アドックインターナショナルはGoogleのまわし者!?
2011.10.11
あなたのその行動、誰かに監視されてませんか?
2011.9.28
たったこれだけのことで、チームに一体感が生まれる!?
2011.9.22
ADOCersがITS健康保険組合の野球大会に出場します!
2011.9.21
アドックに入社するとコンサートホールで歌えてグァムに行けるってホント?
2011.8.30
アドック社員元気の素!?
2011.8.16
電力使用制限発動!罰金は100万円!?PC電力管理ソフトのススメ
2011.8. 9
「ネットトラブル調査隊」対象エリア拡大しました!(後日談付き)
2011.8. 1
Windows7にはメールソフトが付いてない!?
2011.7.22
「社長の想いを語る夕べ」プログラムのご紹介
2011.7.12
64ビット版Windowsへの移行について
2011.7. 8
検証やテストを自動化する際に気を付けなければいけない3つの事
2011.7. 5
地デジと周波数再編とADOC
2011.6.29
アドックインターナショナルの節電対策とスーパークールビズ
2011.6.27
あるレンタカー事業会社のケース
2011.6.20
ラボルームのご紹介
2011.6.17
Interop Tokyo 2011に行ってきました!
2011.6. 7
ADOCの保守サービスと震災対応
2011.5.31
"メンタルヘルスケア・ジャパン2011"レポート
2011.5.19
「おばあちゃん家」
2011.5.11
スマートフォンは急速に普及している・・・?
2011.5. 9
ADOCの品質改善活動への取り組み事例をご紹介
2011.4.19
ADOCのお花見と節電への取り組み
2011.4. 6
復興支援のため東北へ向かっていた弊社の社員2名が戻ってきました!その2
2011.3.31
復興支援のため東北へ向かっていた弊社の社員2名が戻ってきました!
2011.3.28
弊社パートナーが被災地支援のサービス開始
2011.3.25
震災により表面化した携帯通信網の弱さ
2011.2.28
エンジニアブログスタートのお知らせ
カテゴリー
月別アーカイブ

<