6.5. セルの作成およびプロビジョニング

「マルチセルオーバークラウドのデプロイ」 の説明に従って新しいセルスタックでオーバークラウドをデプロイしたら、コンピュートセルを作成およびプロビジョニングします。

注記

このプロセスは、作成および起動する各セルに対して繰り返す必要があります。Ansible Playbook で手順を自動化することができます。Ansible Playbook の例については、OpenStack コミュニティーのドキュメントの「Create the cell and discover compute nodes (ansible playbook)」セクションを参照してください。コミュニティーのドキュメントはそのままの状態で提供され、公式にはサポートされません。

  1. コントロールプレーンおよびセルコントローラーの 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 cellcontroller-0 | sed 's/ctlplane=//')
  2. すべてのコントローラーノードにセル情報を追加します。この情報は、アンダークラウドからセルのエンドポイントに接続するのに使用されます。

    (undercloud) [stack@undercloud ~]$ CELL_INTERNALAPI_INFO=$(ssh heat-admin@${CELL_CTRL_IP} egrep \
                                        cellcontrol.*\.internalapi /etc/hosts)
    (undercloud) [stack@undercloud ~]$ ansible -i /usr/bin/tripleo-ansible-inventory Controller -b \
                                        -m lineinfile -a "dest=/etc/hosts line=\"$CELL_INTERNALAPI_INFO\""
  3. コントローラーセルから transport_url および database.connection エンドポイント情報を取得します。

    (undercloud) [stack@undercloud ~]$ CELL_TRANSPORT_URL=$(ssh heat-admin@${CELL_CTRL_IP} sudo \
                                        crudini --get /var/lib/config-data/nova/etc/nova/nova.conf DEFAULT transport_url)
    (undercloud) [stack@undercloud ~]$ CELL_MYSQL_VIP=$(ssh heat-admin@${CELL_CTRL_IP} sudo \
                                        crudini --get /var/lib/config-data/nova/etc/nova/nova.conf database connection \
                                        | perl -nle'/(\d+\.\d+\.\d+\.\d+)/ && print $1')
  4. グローバルコントローラーノードのいずれかにログインし、前のステップで取得した情報に基づいてセルを作成します。以下に例を示します。

    $ export CONTAINERCLI='podman'
    
    $ ssh heat-admin@${CTRL_IP} sudo ${CONTAINERCLI} exec -i -u root nova_api \
      nova-manage cell_v2 create_cell --name computecell1 \
      --database_connection "{scheme}://{username}:{password}@$CELL_MYSQL_VIP/nova?{query}" \
      --transport-url "$CELL_TRANSPORT_URL"
  5. セルが作成され、セルの一覧に表示されることを確認します。

    $ ssh heat-admin@${CTRL_IP} sudo ${CONTAINERCLI} exec -i -u root nova_api \
    nova-manage cell_v2 list_cells --verbose
  6. コントローラーノードで Compute サービスを再起動します。

    $ ansible -i /usr/bin/tripleo-ansible-inventory Controller -b -a \
    "systemctl restart tripleo_nova_api tripleo_nova_conductor tripleo_nova_scheduler"
  7. セルコントローラーサービスがプロビジョニングされていることを確認します。

    (overcloud) [stack@undercloud ~]$ nova service-list