Ubuntu 24.04

OpenStack Flamingo : Nova 設定 #22025/11/18

 

OpenStack Compute Service(Nova)をインストールします。

当例では以下のような環境に Nova API サービスをインストールします。

        eth0|10.0.0.30 
+-----------+-----------+
|   [ dlp.srv.world ]   |
|     (Control Node)    |
|                       |
|  MariaDB    RabbitMQ  |
|  Memcached  Nginx     |
|  Keystone   httpd     |
|  Glance     Nova API  |
+-----------------------+

[1] Nova をインストールします。
root@dlp ~(keystone)#
apt -y install nova-api nova-conductor nova-scheduler nova-novncproxy placement-api python3-novaclient
[2] Nova の基本設定です。
root@dlp ~(keystone)#
mv /etc/nova/nova.conf /etc/nova/nova.conf.org

root@dlp ~(keystone)#
vi /etc/nova/nova.conf
# 新規作成
[DEFAULT]
osapi_compute_listen = 127.0.0.1
osapi_compute_listen_port = 8774
metadata_listen = 127.0.0.1
metadata_listen_port = 8775
state_path = /var/lib/nova
enabled_apis = osapi_compute,metadata
log_dir = /var/log/nova
# RabbitMQ サーバー接続情報
transport_url = rabbit://openstack:password@dlp.srv.world:5672

[api]
auth_strategy = keystone

[vnc]
enabled = True
novncproxy_host = 127.0.0.1
novncproxy_port = 6080
novncproxy_base_url = https://dlp.srv.world:6080/vnc_auto.html

[oslo_concurrency]
lock_path = $state_path/tmp

# MariaDB サーバー接続情報
[api_database]
connection = mysql+pymysql://nova:password@dlp.srv.world:3306/nova_api

[database]
connection = mysql+pymysql://nova:password@dlp.srv.world:3306/nova

# Keystone サーバー接続情報
[keystone_authtoken]
www_authenticate_uri = https://dlp.srv.world:5000
auth_url = https://dlp.srv.world:5000
memcached_servers = dlp.srv.world:11211
auth_type = password
project_domain_name = Default
user_domain_name = Default
project_name = service
username = nova
password = servicepassword
service_token_roles = service
service_token_roles_required = true
# Apache2 Keystone で自己署名の証明書を使用の場合は [true]
insecure = false

[placement]
auth_url = https://dlp.srv.world:5000
os_region_name = RegionOne
auth_type = password
project_domain_name = Default
user_domain_name = Default
project_name = service
username = placement
password = servicepassword
# Apache2 Keystone で自己署名の証明書を使用の場合は [true]
insecure = false

[wsgi]
api_paste_config = /etc/nova/api-paste.ini

[oslo_policy]
enforce_new_defaults = true

root@dlp ~(keystone)#
chmod 640 /etc/nova/nova.conf

root@dlp ~(keystone)#
chgrp nova /etc/nova/nova.conf
root@dlp ~(keystone)#
mv /etc/placement/placement.conf /etc/placement/placement.conf.org

root@dlp ~(keystone)#
vi /etc/placement/placement.conf
# 新規作成
[DEFAULT]
debug = false

[api]
auth_strategy = keystone

[keystone_authtoken]
www_authenticate_uri = https://dlp.srv.world:5000
auth_url = https://dlp.srv.world:5000
memcached_servers = dlp.srv.world:11211
auth_type = password
project_domain_name = Default
user_domain_name = Default
project_name = service
username = placement
password = servicepassword
# Apache2 Keystone で自己署名の証明書を使用の場合は [true]
insecure = false

[placement_database]
connection = mysql+pymysql://placement:password@dlp.srv.world:3306/placement

root@dlp ~(keystone)#
chmod 640 /etc/placement/placement.conf

root@dlp ~(keystone)#
chgrp placement /etc/placement/placement.conf
root@dlp ~(keystone)#
vi /etc/apache2/sites-enabled/placement-api.conf
# 1行目 : 変更

Listen
127.0.0.1:8778
root@dlp ~(keystone)#
vi /etc/apache2/sites-enabled/nova-api.conf
# 1行目 : 変更
Listen 127.0.0.1:8774

# 29行目 : 変更
Alias /nova-api /usr/bin/nova-api-wsgi

# 最終行に追記
Listen 127.0.0.1:8775
<VirtualHost *:8775>
    WSGIScriptAlias / /usr/bin/nova-metadata-wsgi
    WSGIDaemonProcess nova-api-metadata processes=5 threads=1 user=nova group=nova display-name=%{GROUP}
    WSGIProcessGroup nova-api
    WSGIApplicationGroup %{GLOBAL}
    WSGIPassAuthorization On
    LimitRequestBody 114688
    ErrorLogFormat "%{cu}t %M"
    ErrorLog /var/log/apache2/nova_metadata_error.log
    CustomLog /var/log/apache2/nova_metadata_access.log combined
    <Directory /usr/bin>
        Require all granted
    </Directory>
</VirtualHost>

Alias /nova-metadata-api /usr/bin/nova-metadata-wsgi
<Location /nova-metadata-api>
  SetHandler wsgi-script
  Options +ExecCGI
  WSGIProcessGroup nova-api
  WSGIApplicationGroup %{GLOBAL}
  WSGIPassAuthorization On
</Location>
[3] Nginx にプロキシの設定をします。
root@dlp ~(keystone)#
vi /etc/nginx/nginx.conf
# [stream] セクション内に追記

stream {
    upstream glance-api {
        server 127.0.0.1:9292;
    }
    server {
        listen 10.0.0.30:9292 ssl;
        proxy_pass glance-api;
    }
    upstream nova-api {
        server 127.0.0.1:8774;
    }
    server {
        listen 10.0.0.30:8774 ssl;
        proxy_pass nova-api;
    }
    upstream nova-metadata-api {
        server 127.0.0.1:8775;
    }
    server {
        listen 10.0.0.30:8775 ssl;
        proxy_pass nova-metadata-api;
    }
    upstream placement-api {
        server 127.0.0.1:8778;
    }
    server {
        listen 10.0.0.30:8778 ssl;
        proxy_pass placement-api;
    }
    upstream novncproxy {
        server 127.0.0.1:6080;
    }
    server {
        listen 10.0.0.30:6080 ssl;
        proxy_pass novncproxy;
    }
    ssl_certificate "/etc/letsencrypt/live/dlp.srv.world/fullchain.pem";
    ssl_certificate_key "/etc/letsencrypt/live/dlp.srv.world/privkey.pem";
}
[4] データベースにデータを追加して Nova をサービス起動します。
root@dlp ~(keystone)#
su -s /bin/bash placement -c "placement-manage db sync"
root@dlp ~(keystone)#
su -s /bin/bash nova -c "nova-manage api_db sync"
root@dlp ~(keystone)#
su -s /bin/bash nova -c "nova-manage cell_v2 map_cell0"
root@dlp ~(keystone)#
su -s /bin/bash nova -c "nova-manage db sync"
root@dlp ~(keystone)#
su -s /bin/bash nova -c "nova-manage cell_v2 create_cell --name cell1"
root@dlp ~(keystone)#
systemctl restart apache2

root@dlp ~(keystone)#
systemctl restart nova-conductor nova-scheduler nova-novncproxy

root@dlp ~(keystone)#
systemctl enable nova-conductor nova-scheduler nova-novncproxy

root@dlp ~(keystone)#
systemctl reload nginx
# 状態確認

root@dlp ~(keystone)#
openstack compute service list

+-----------+-----------+-----------+----------+---------+-------+-------------+
| ID        | Binary    | Host      | Zone     | Status  | State | Updated At  |
+-----------+-----------+-----------+----------+---------+-------+-------------+
| 6fb3c51a- | nova-     | dlp.srv.w | internal | enabled | up    | 2025-11-    |
| 95e3-     | scheduler | orld      |          |         |       | 16T09:49:11 |
| 4d90-     |           |           |          |         |       | .000000     |
| 88ee-     |           |           |          |         |       |             |
| 099ed05be |           |           |          |         |       |             |
| 829       |           |           |          |         |       |             |
| 17f307b4- | nova-     | dlp.srv.w | internal | enabled | up    | 2025-11-    |
| b560-     | conductor | orld      |          |         |       | 16T09:49:10 |
| 4fc9-     |           |           |          |         |       | .000000     |
| 976f-     |           |           |          |         |       |             |
| 98652c09b |           |           |          |         |       |             |
| 7bc       |           |           |          |         |       |             |
+-----------+-----------+-----------+----------+---------+-------+-------------+
関連コンテンツ