Nova计算控制节点
在安装和配置计算服务之前,必须创建数据库、服务凭据和 API 终结点。
~# mysql
创建数据库
MariaDB [(none)]> CREATE DATABASE nova_api;
MariaDB [(none)]> CREATE DATABASE nova;
MariaDB [(none)]> CREATE DATABASE nova_cell0;
- 授权访问placement
MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'localhost' \
IDENTIFIED BY 'nova123';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'%' \
IDENTIFIED BY 'nova123';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' \
IDENTIFIED BY 'nova123';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' \
IDENTIFIED BY 'nova123';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'localhost' \
IDENTIFIED BY 'nova123';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'%' \
IDENTIFIED BY 'nova123';
获取凭据以获取对仅限管理员的 CLI 命令的访问权限:admin
~# . admin-openrc
创建计算服务凭据:
- 创建用户:
nova
~# openstack user create --domain default --password-prompt nova
- 将角色添加到用户:
admin
nova
~# openstack role add --project service --user nova admin
- 创建服务实体:
nova
~# openstack service create --name nova \
--description "OpenStack Compute" compute
创建计算 API 服务终结点:
~# openstack endpoint create --region RegionOne \
compute public http://controller:8774/v2.1
~# openstack endpoint create --region RegionOne \
compute internal http://controller:8774/v2.1
~# openstack endpoint create --region RegionOne \
compute admin http://controller:8774/v2.1
安装和配置组件
安装软件
~# apt install nova-api nova-conductor nova-novncproxy nova-scheduler
编辑文件并完成以下操作:/etc/nova/nova.conf
#log_dir = /var/log/nova
[api_database]
# ...
connection = mysql+pymysql://nova:nova123@mysql01/nova_api
[database]
# ...
connection = mysql+pymysql://nova:nova123@mysql01/nova
配置消息队列访问
[DEFAULT]
# ...
transport_url = rabbit://openstack:nova123@controller:5672/
[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 = nova123
配置选项以使用控制器节点的管理接口 IP 地址:[DEFAULT]``my_ip
[DEFAULT]
# ...
my_ip = 172.18.40.1 #本机ip
在本节中,将 VNC 代理配置为使用控制器节点的管理接口 IP 地址:[vnc]
[vnc]
enabled = true
# ...
server_listen = $my_ip
server_proxyclient_address = $my_ip
在该部分中,配置影像服务 API 的位置:[glance]
[glance]
# ...
api_servers = http://controller:9292
配置锁定路径:[oslo_concurrency]
[oslo_concurrency]
# ...
lock_path = /var/lib/nova/tmp
由于打包错误,请从该部分中删除该选项。log_dir``[DEFAULT]
在该部分中,配置对放置服务的访问权限:[placement]
[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 = nova123
填充数据库:nova-api
~# su -s /bin/sh -c "nova-manage api_db sync" nova
注册数据库:cell0
~# su -s /bin/sh -c "nova-manage cell_v2 map_cell0" nova
创建单元格:cell1
~# su -s /bin/sh -c "nova-manage cell_v2 create_cell --name=cell1 --verbose" nova
--transport-url not provided in the command line, using the value [DEFAULT]/transport_url from the configuration file
--database_connection not provided in the command line, using the value [database]/connection from the configuration file
3aead58a-c53a-4832-a9ac-dad0fa7d907f
上面错误忽略
填充 nova 数据库:
~# su -s /bin/sh -c "nova-manage db sync" nova
验证 nova 单元格 0 和单元格 1 是否已正确注册:
~# 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:****@mysql01/nova_cell0 | False |
| cell1 | f3767777-d3ea-4231-ab6d-d0c4f42ab059 | rabbit://openstack:****@controller:5672/ | mysql+pymysql://nova:****@mysql01/nova | False |
+-------+--------------------------------------+------------------------------------------+----------------------------------------------+----------+
完成安装
~# service nova-api restart && systemctl enable nova-api
~# service nova-scheduler restart && systemctl enable nova-scheduler
~# service nova-conductor restart && systemctl enable nova-conductor
~# service nova-novncproxy restart && systemctl enable nova-novncproxy