安装和配置 openSUSE 和 SUSE Linux Enterprise 的控制器节点¶
本节描述了如何在控制器节点上安装和配置 Compute 服务,代号为 nova。
先决条件¶
在安装和配置 Compute 服务之前,您必须创建数据库、服务凭证和 API 端点。
要创建数据库,请完成以下步骤
使用数据库访问客户端以
root用户身份连接到数据库服务器$ mysql -u root -p
创建
nova_api、nova和nova_cell0数据库MariaDB [(none)]> CREATE DATABASE nova_api; MariaDB [(none)]> CREATE DATABASE nova; MariaDB [(none)]> CREATE DATABASE nova_cell0;
授予数据库适当的访问权限
MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'localhost' \ IDENTIFIED BY 'NOVA_DBPASS'; MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'%' \ IDENTIFIED BY 'NOVA_DBPASS'; MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' \ IDENTIFIED BY 'NOVA_DBPASS'; MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' \ IDENTIFIED BY 'NOVA_DBPASS'; MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'localhost' \ IDENTIFIED BY 'NOVA_DBPASS'; MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'%' \ IDENTIFIED BY 'NOVA_DBPASS';
将
NOVA_DBPASS替换为合适的密码。退出数据库访问客户端。
激活
admin凭证以访问仅管理员可用的 CLI 命令$ . admin-openrc
创建 Compute 服务凭证
创建
nova用户$ openstack user create --domain default --password-prompt nova User Password: Repeat User Password: +---------------------+----------------------------------+ | Field | Value | +---------------------+----------------------------------+ | domain_id | default | | enabled | True | | id | 8a7dbf5279404537b1c7b86c033620fe | | name | nova | | options | {} | | password_expires_at | None | +---------------------+----------------------------------+
将
admin角色添加到nova用户$ openstack role add --project service --user nova admin
注意
此命令不会产生任何输出。
创建
nova服务实体$ openstack service create --name nova \ --description "OpenStack Compute" compute +-------------+----------------------------------+ | Field | Value | +-------------+----------------------------------+ | description | OpenStack Compute | | enabled | True | | id | 060d59eac51b4594815603d75a00aba2 | | name | nova | | type | compute | +-------------+----------------------------------+
创建 Compute API 服务端点
$ openstack endpoint create --region RegionOne \ compute public http://controller:8774/v2.1 +--------------+-------------------------------------------+ | Field | Value | +--------------+-------------------------------------------+ | enabled | True | | id | 3c1caa473bfe4390a11e7177894bcc7b | | interface | public | | region | RegionOne | | region_id | RegionOne | | service_id | 060d59eac51b4594815603d75a00aba2 | | service_name | nova | | service_type | compute | | url | http://controller:8774/v2.1 | +--------------+-------------------------------------------+ $ openstack endpoint create --region RegionOne \ compute internal http://controller:8774/v2.1 +--------------+-------------------------------------------+ | Field | Value | +--------------+-------------------------------------------+ | enabled | True | | id | e3c918de680746a586eac1f2d9bc10ab | | interface | internal | | region | RegionOne | | region_id | RegionOne | | service_id | 060d59eac51b4594815603d75a00aba2 | | service_name | nova | | service_type | compute | | url | http://controller:8774/v2.1 | +--------------+-------------------------------------------+ $ openstack endpoint create --region RegionOne \ compute admin http://controller:8774/v2.1 +--------------+-------------------------------------------+ | Field | Value | +--------------+-------------------------------------------+ | enabled | True | | id | 38f7af91666a47cfb97b4dc790b94424 | | interface | admin | | region | RegionOne | | region_id | RegionOne | | service_id | 060d59eac51b4594815603d75a00aba2 | | service_name | nova | | service_type | compute | | url | http://controller:8774/v2.1 | +--------------+-------------------------------------------+
安装 Placement 服务并配置用户和端点
有关更多信息,请参阅 Placement 服务安装指南。
安装和配置组件¶
注意
默认配置文件因发行版而异。您可能需要添加这些部分和选项,而不是修改现有的部分和选项。此外,配置片段中的省略号 (...) 表示您应该保留的潜在默认配置选项。
注意
从 Newton 版本开始,SUSE OpenStack 包附带上游默认配置文件。例如,/etc/nova/nova.conf 在 /etc/nova/nova.conf.d/010-nova.conf 中具有自定义项。虽然以下说明会修改默认配置文件,但将新文件添加到 /etc/nova/nova.conf.d 可以达到相同的效果。
安装软件包
# zypper install \ openstack-nova-api \ openstack-nova-scheduler \ openstack-nova-conductor \ openstack-nova-novncproxy \ iptables
编辑
/etc/nova/nova.conf文件并完成以下操作在
[api_database]和[database]部分中,配置数据库访问[api_database] # ... connection = mysql+pymysql://nova:NOVA_DBPASS@controller/nova_api [database] # ... connection = mysql+pymysql://nova:NOVA_DBPASS@controller/nova
将
NOVA_DBPASS替换为您为 Compute 数据库选择的密码。在
[DEFAULT]部分中,配置RabbitMQ消息队列访问[DEFAULT] # ... transport_url = rabbit://openstack:RABBIT_PASS@controller:5672/
将
RABBIT_PASS替换为您为RabbitMQ中的openstack帐户选择的密码。在
[keystone_authtoken]部分中,配置 Identity 服务访问[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
将
NOVA_PASS替换为您在 Identity 服务中为nova用户选择的密码。注意
注释掉或删除
[keystone_authtoken]部分中的任何其他选项。在
[service_user]部分中,配置 服务用户令牌[service_user] send_service_user_token = true auth_url = https://controller/identity auth_type = password project_domain_name = Default project_name = service user_domain_name = Default username = nova password = NOVA_PASS
将
NOVA_PASS替换为您在 Identity 服务中为nova用户选择的密码。在
[DEFAULT]部分中,配置my_ip选项以使用控制器节点的管理接口 IP 地址[DEFAULT] # ... my_ip = 10.0.0.11
配置 **/etc/nova/nova.conf** 的
[neutron]部分。有关更多详细信息,请参阅 网络服务安装指南。在
[vnc]部分中,配置 VNC 代理以使用控制器节点的管理接口 IP 地址[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/run/nova
在
[placement]部分中,配置对 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 = PLACEMENT_PASS
将
PLACEMENT_PASS替换为您为安装 Placement 时创建的placement服务用户选择的密码。注释掉或删除[placement]部分中的任何其他选项。
填充
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
填充 nova 数据库
# su -s /bin/sh -c "nova-manage db sync" nova
验证 nova cell0 和 cell1 是否已正确注册
# 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 | +-------+--------------------------------------+----------------------------------------------------+--------------------------------------------------------------+----------+
完成安装¶
启动 Compute 服务并配置它们在系统启动时启动
# 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