4.2. 在 Compute 服务中创建单元
使用新单元堆栈部署 overcloud 后,您必须在计算服务内创建单元。要在计算服务中创建单元格,您可以为全局 API 数据库中的单元和消息队列映射创建条目。
您必须对创建和启动的每个单元重复这个过程。您可以自动执行 Ansible playbook 中的步骤。如需 Ansible playbook 的示例,请参阅 OpenStack 社区文档中的 创建单元和发现 Compute 节点 部分。社区文档按原样提供,不受正式支持。
流程
获取 control plane 和单元控制器的 IP 地址:
$ CTRL_IP=$(openstack server list -f value -c Networks --name overcloud-controller-0 | sed 's/ctlplane=//') $ CELL_CTRL_IP=$(openstack server list -f value -c Networks --name cell1-cellcontroller-0 | sed 's/ctlplane=//')
在所有 Controller 节点中添加单元信息。此信息用于从 undercloud 连接到单元端点。以下示例使用前缀
cell1
来只指定单元系统并排除控制器系统:(undercloud)$ CELL_INTERNALAPI_INFO=$(ssh heat-admin@${CELL_CTRL_IP} \ egrep cell1.*\.internalapi /etc/hosts) (undercloud)$ ansible -i /usr/bin/tripleo-ansible-inventory \ Controller -b -m lineinfile -a "dest=/etc/hosts line=\"$CELL_INTERNALAPI_INFO\""
从
transport_url
参数获取控制器单元的消息队列端点,以及来自database.connection
参数的控制器单元的数据库连接:(undercloud)$ CELL_TRANSPORT_URL=$(ssh tripleo-admin@${CELL_CTRL_IP} \ sudo crudini --get /var/lib/config-data/puppet-generated/nova/etc/nova/nova.conf \ DEFAULT transport_url) (undercloud)$ CELL_MYSQL_VIP=$(ssh tripleo-admin@${CELL_CTRL_IP} \ sudo crudini --get /var/lib/config-data/puppet-generated/nova/etc/nova/nova.conf \ database connection | awk -F[@/] '{print $4}')
登录到其中一个全局 Controller 节点并创建单元:
$ ssh heat-admin@${CTRL_IP} sudo podman \ exec -i -u root nova_api \ nova-manage cell_v2 create_cell --name cell1 \ --database_connection "{scheme}://{username}:{password}@$CELL_MYSQL_VIP/nova?{query}" \ --transport-url "$CELL_TRANSPORT_URL"
检查单元是否已创建并出现在单元列表中:
$ ssh heat-admin@${CTRL_IP} sudo podman \ exec -i -u root nova_api \ nova-manage cell_v2 list_cells --verbose
重启 Controller 节点上的 Compute 服务:
$ ansible -i /usr/bin/tripleo-ansible-inventory Controller -b -a \ "systemctl restart tripleo_nova_api tripleo_nova_conductor tripleo_nova_scheduler"
检查单元控制器服务是否已置备:
(overcloud)$ openstack compute service list -c Binary -c Host -c Status -c State +----------------+-------------------------+---------+-------+ | Binary | Host | Status | State | +----------------+-------------------------+---------+-------+ | nova-conductor | controller-0.ostest | enabled | up | | nova-scheduler | controller-0.ostest | enabled | up | | nova-conductor | cellcontroller-0.ostest | enabled | up | | nova-compute | compute-0.ostest | enabled | up | | nova-compute | compute-1.ostest | enabled | up | +----------------+-------------------------+---------+-------+