컨트롤러 노드에 nova-api · nova-scheduler · nova-conductor · nova-novncproxy 를 설치하고 cell 을 만든다. 데이터베이스 설정과 자격 증명 생성을 먼저 끝낸다. NOVA_DBPASS · NOVA_PASS · PLACEMENT_PASS · RABBIT_PASS 는 미리 정한 값으로, 10.0.0.11 은 컨트롤러 관리용 IP 로 바꾼다.
Ubuntu 24.04
apt install nova-api nova-conductor nova-novncproxy nova-scheduler
CentOS Stream 9 · RHEL 9
dnf install openstack-nova-api openstack-nova-conductor openstack-nova-novncproxy openstack-nova-scheduler
/etc/nova/nova.conf 의 다음 절에 값을 넣는다.
[DEFAULT]
transport_url = rabbit://openstack:RABBIT_PASS@controller:5672/
my_ip = 10.0.0.11
[api_database]
connection = mysql+pymysql://nova:NOVA_DBPASS@controller/nova_api
[database]
connection = mysql+pymysql://nova:NOVA_DBPASS@controller/nova
[api]
auth_strategy = keystone
[keystone_authtoken]
www_authenticate_uri = http://controller:5000/
auth_url = http://controller:5000/
memcached_servers = controller:11211
auth_type = password
project_domain_name = Default
user_domain_name = Default
project_name = service
username = nova
password = NOVA_PASS
[service_user]
send_service_user_token = true
auth_url = http://controller:5000
auth_type = password
project_domain_name = Default
project_name = service
user_domain_name = Default
username = nova
password = NOVA_PASS
[vnc]
enabled = true
server_listen = $my_ip
server_proxyclient_address = $my_ip
[glance]
api_servers = http://controller:9292
[oslo_concurrency]
lock_path = /var/lib/nova/tmp
[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
[service_user] 절은 서비스 간 호출에 서비스 토큰을 함께 보내 장시간 작업 중 사용자 토큰이 만료돼도 실패하지 않게 한다. 공식 문서의 예시 값은 auth_url = https://controller/identity 인데, 이 환경의 Keystone 은 http://controller:5000 이므로 실제 엔드포인트에 맞춘다.[keystone_authtoken] 절의 다른 항목은 주석 처리하거나 지운다.[DEFAULT] 절에 log_dir 이 있으면 주석 처리한다.su -s /bin/sh -c "nova-manage api_db sync" nova
su -s /bin/sh -c "nova-manage cell_v2 map_cell0" nova
su -s /bin/sh -c "nova-manage cell_v2 create_cell --name=cell1 --verbose" nova
su -s /bin/sh -c "nova-manage db sync" nova
확인
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?charset=utf8 | False |
| cell1 | f690f4fd-2bc5-4f15-8145-db561a7b9d3d | rabbit://openstack:****@controller:5672/nova_cell1 | mysql+pymysql://nova:****@controller/nova_cell1?charset=utf8 | False |
+-------+--------------------------------------+----------------------------------------------------+--------------------------------------------------------------+----------+
Ubuntu 24.04
systemctl restart nova-api nova-scheduler nova-conductor nova-novncproxy
CentOS Stream 9 · RHEL 9
systemctl enable openstack-nova-api.service openstack-nova-scheduler.service openstack-nova-conductor.service openstack-nova-novncproxy.service
systemctl start openstack-nova-api.service openstack-nova-scheduler.service openstack-nova-conductor.service openstack-nova-novncproxy.service
RHEL 계열에서 firewalld 를 쓰면 API · 메타데이터 · noVNC 포트를 연다.
firewall-cmd --permanent --add-port=8774/tcp --add-port=8775/tcp --add-port=6080/tcp
firewall-cmd --reload
컴퓨트 노드를 아직 붙이지 않았으므로 컨트롤러의 서비스만 보인다.
. admin-openrc
openstack compute service list
openstack catalog list
nova-status upgrade check
nova-scheduler · nova-conductor 가 up 이고 nova-status upgrade check 의 항목이 Success 면 컴퓨트 노드 설치로 넘어간다.
CentOS Stream 8 · Victoria 의 nova.conf 에는 다음 항목이 있었다. 현행 릴리스에서는 제거됐거나 기본값이 돼 넣지 않는다.
[DEFAULT]
enabled_apis = osapi_compute,metadata
use_neutron = true
firewall_driver = nova.virt.firewall.NoopFirewallDriver