内容:
セクション1マルチノードOpenStackチャームデプロイメントガイド0.0.1.dev223–1--OpenStackチャームデプロイメントガイド
セクション2マルチノードOpenStackチャームデプロイメントガイド0.0.1.dev223–2-MAASのインストール
セクション3マルチノードOpenStackCharmsデプロイメントガイド0.0.1.dev223–3-Jujuをインストールする
セクション4マルチノードOpenStackCharmsデプロイメントガイド0.0.1.dev223–4-openstackをインストールします
セクション5マルチノードOpenStackチャームデプロイメントガイド0.0.1.dev223–5--バンドルにopenstackをインストールさせます
セクション6マルチノードOpenStackCharmsデプロイメントガイド0.0.1.dev223–6--Vaultを構成し、デジタル証明書のライフサイクルを設定します
セクション7マルチノードOpenStackCharmsデプロイメントガイド0.0.1.dev223–7--jujuバンドルのオフラインデプロイメント
セクション8マルチノードOpenStackチャームデプロイメントガイド0.0.1.dev223–8--OpenStackの構成
セクション9マルチノードOpenStackCharmsデプロイメントガイド0.0.1.dev223–9--ネットワークトポロジ
セクション10マルチノードOpenStackチャームデプロイメントガイド0.0.1.dev223–10–OpenStack高可用性インフラストラクチャー実用的
セクション11マルチノードOpenStackCharmsデプロイメントガイド0.0.1.dev223–11–Jujuダッシュボードへのアクセス
バンドルからOpenStackをインストールします
Jujuチャームバンドルは、必要なすべての関係と構成を含む、多くのチャーム展開のパッケージです(Jujuドキュメントのチャームバンドルを参照)。したがって、OpenStackはバンドルからインストールできます。
チップ
[OpenStackのインストール]ページには、Jujuを使用してアプリケーションを個別にデプロイ、構成、および関連付ける方法が示されています。このインストール方法を使用して、OpenStackがどのように組み合わされるかをより高い観点から理解することをお勧めします。また、Jujuの使用経験を積む機会も提供します。これにより、展開後のクラウド管理の準備が整います。
ここに示すバンドルは、最小限のOpenStackクラウドを提供し、MAASがJujuのバックアップクラウドとして使用されることを前提としています。ローカル環境(通常はハードウェアに関連する)の未知の要因により、展開前にバンドルを変更する必要がある場合があります。バンドルとそのデプロイについては、こちらのチャームストアエントリopenstack-baseで詳しく説明されています。
バンドル構成が確認されると、OpenStackをデプロイできます。
juju deploy /path/to/bundle/file
インストールの完了に必要な時間は、基盤となるMAASノードのハードウェア機能によって異なります。完了したら、OpenStackの構成をまだ行っていない場合は、引き続き構成する必要があります。
最後に、クラウドの機能が確認されたら、長期的なガイダンスについてOpenStack管理者ガイドを参照してください。
実際のインストールプロセスは次のとおりです。
基本的なOpenStackCloud
Openstack Base#70
このパッケージは、基本的なOpenStack Cloud(Ussuri、Ceph Octopus)をUbuntu 20.04 LTS(Focal)にデプロイし、ダッシュボード、コンピューティング、ネットワーク、ブロックストレージ、オブジェクトストレージ、ID、およびイメージサービス。参照:安定バンドル。
このサンプルパッケージは、Juju 2.xおよびMAAS(Metal-as-a-Service、Metal-as-a-Service)を使用してベアメタルで実行するように設計されています。このパッケージを使用する前に、少なくとも3つの物理サーバーをセットアップする必要があります。 MAASの展開。
バンドル内の一部の構成オプションは、特定のハードウェア設定に合わせて展開する前に調整する必要がある場合があります。たとえば、ネットワークデバイス名とブロックデバイス名は異なる場合があり、パスワードは自分のものにする必要があります。
たとえば、bundle.yamlファイルには同様のセクションがあります。3番目の「列」は設定する値です。一部のサーバーにはeno2がない場合があり、eth2または他のネットワークデバイス名がある場合があります。これは、展開前に調整する必要があります。同じ原則がosdデバイスにも当てはまります。3番目の列は、cephosdに使用されるデバイスのホワイトリストです。デプロイする前に、bundle.yamlを編集して調整を行います。
variables:
openstack-origin: &openstack-origin distro
data-port: &data-port br-ex:eno2
worker-multiplier: &worker-multiplier 0.25
osd-devices: &osd-devices /dev/sdb /dev/vdb
サーバーには次のものが必要です。
- 少なくとも8GBの物理メモリ
- 容量のニーズを満たすのに十分なCPUコア
- 2つのディスク(/ dev / sdaおよび/ dev / sdbで識別)。最初のディスクはMAASによってOSのインストールに使用され、2番目のディスクはCephストレージに使用されます。
- Eno1とeno2の2つの有線ネットワークポート(以下を参照)
サーバーには2つの物理ネットワークポートが接続されている必要があります。最初のポートはクラウド内のサービス間の一般的な通信に使用され、2番目のポートはクラウドで実行されているインスタンスからの「パブリック」ネットワークトラフィックに使用されます(ノース/サウスフロー) 。
Nova ComputeとCeph用の3つのノード、RabbitMQ、MySQL、Keystone、Glance、Neutron、OVN、Nova Cloudコントローラー、Ceph RADOSゲートウェイ、Cinder、HorizonがLXCコンテナーに含まれています。
すべての物理サーバー(LXCコンテナーを除く)もNTPとともにインストールされ、時刻の同期を維持するように構成されます。
デプロイ
ネットワークスペースが定義されていないMAASクラウドでJujuコントローラーを起動すると、次のコマンドを使用して、基本的な非haクラウドをデプロイできます。
juju deploy bundle.yaml
MAASクラスターにネットワークスペースがある場合、チャームアプリケーションが展開されるネットワークスペースを明確にして定義する必要があります。これは、オーバーレイバンドルを介して実現できます。オーバーレイyamlファイルの例が提供されています。これは、既存のMAASクラスターで予想されるネットワークスペースを表すために、デプロイ前に編集する必要がある可能性があります。使用例:
juju deploy bundle.yaml --overlay openstack-base-spaces-overlay.yaml
証明書を発行する
このバージョンでは、Vaultを使用して、サポートされているサービスに証明書を提供します。これにより、エンドユーザーとクラウドサービス間の安全な通信が可能になるだけでなく、クラウドサービス間の通信のセキュリティも確保されます。構成が完了してクラウドを使用する前に、ボールトを開封し、CA証明書を装備する必要があります。これを行わないと、展開後に次のメッセージ(juju状態)が表示されます。
'certificates' missing, 'ovsdb' incomplete
詳細については、 『OpenStackチャームデプロイメントガイド』の「Vaultおよび証明書のライフサイクル管理」セクションを参照してください。手順の例は、OpenStack高可用性ガイドに記載されています。
展開
Nova ComputeおよびCephサービスの設計は、水平方向にスケーラブルです。
Nova Computeを水平方向に展開します。
juju add-unit nova-compute # Add one more unit
juju add-unit -n5 nova-compute # Add 5 more units
Cephを水平方向にスケーリングする:
juju add-unit ceph-osd # Add one more unit
juju add-unit -n50 ceph-osd # add 50 more units
注:Cephは、– toオプションを使用して単位を追加することにより、NovaComputeと一緒に調整できます。
juju add-unit --to <machine-id-of-compute-service> ceph-osd
注:このバンドルの他のサービスは、hacluster
チャームと組み合わせて拡張して、スケーラブルで可用性の高いサービスを生成できます。これらのサービスは、さまざまなバンドルに含まれます。
それが機能することを確認してください
クラウドが正しく実行されていることを確認するには、このパッケージをダウンロードしてから、次のセクションを実行してください。
すべてのコマンドは拡張バンドルで実行されます。
OpenStackクライアントツールをインストールする
クラウドを構成して使用するには、適切なクライアントツールをインストールする必要があります。
sudo snap install openstackclients
展開用の証明書を発行します
このバージョンでは、ボールトを使用して、サポートされているサービスに証明書を提供します。これにより、エンドユーザーとクラウドサービス間の安全な通信が可能になるだけでなく、クラウドサービス間の通信のセキュリティも確保されます。構成が完了してクラウドを使用する前に、ボールトを開封し、CA証明書を装備する必要があります。
詳細については、OpenStackチャームデプロイメントガイドの付録にあるVaultと証明書のライフサイクル管理を参照してください。
アクセスクラウド
コマンドラインからクラウドにアクセスできるかどうかを確認します。
source openrc
openstack catalog list
ID、コンピューティング、画像、ネットワークなど、クラウドに登録されているすべてのサービスの完全なリストを取得する必要があります。
配置映像
クラウドでインスタンスを実行するには、インスタンスを起動するための画像をアップロードする必要があります。
curl https://cloud-images.ubuntu.com/focal/current/focal-server-cloudimg-amd64.img | \
openstack image create --public --container-format=bare \
--disk-format=qcow2 focal
注:清華ミラーソースは、加速するために中国で使用することができます
curl https://mirrors.tuna.tsinghua.edu.cn/ubuntu-cloud-images/focal/current/focal-server-cloudimg-amd64.img | \
openstack image create --public --container-format=bare \
--disk-format=qcow2 focal
異なるアーキテクチャの他のイメージは、Ubuntuクラウドイメージから取得できます。さまざまなCPUアーキテクチャに適したイメージを使用してください。
注:
国内の清華ソースは次のとおりです:https://mirrors.tuna.tsinghua.edu.cn/ubuntu-cloud-images/focal/current/
注:ARM 64ビット(arm64)クライアントの場合、UEFIモードで起動するようにイメージを構成する必要もあります。
curl http://cloud-images.ubuntu.com/focal/current/focal-server-cloudimg-arm64.img | \
openstack image create --public --container-format=bare \
--disk-format=qcow2 --property hw_firmware_type=uefi focal
ネットワークを構成する
簡単なテストのために、すべてのテナントがインスタンスにパブリックアクセスするために使用できる「外部」ネットワークと共有ルーター(「プロバイダールーター」)をセットアップします。
例(プライベートクラウドの場合):
openstack network create --external --provider-network-type flat \
--provider-physical-network physnet1 ext_net
openstack subnet create --subnet-range 192.168.1.0/24 --no-dhcp \
--gateway 192.168.1.152 --network ext_net \
--allocation-pool start=192.168.1.190,end=192.168.1.230 ext
すべてのサーバー上のeno2が接続されているネットワーク構成パラメーターを調整する必要があります。パブリッククラウド展開では、これらのポートはインターネットのパブリックアドレス可能な部分に接続されます。
管理者ユーザー用の内部ネットワークも必要です。インスタンスは実際には次のものに接続されています。
openstack network create internal
openstack subnet create --network internal \
--subnet-range 172.16.16.0/24 \
--dns-nameserver 8.8.8.8 \
internal_subnet
openstack router create provider-router
openstack router set --external-gateway ext_net provider-router
openstack router add subnet provider-router internal_subnet
Neutronは、幅広い構成オプションを提供します。詳細については、OpenStackNeutronのドキュメントを参照してください。
フレーバーを構成する
OpenStack Newtonバージョン以降、インストール中にデフォルトのフレーバーが作成されなくなりました。したがって、インスタンスを起動する前に、少なくとも1つのマシンタイプを作成する必要があります。
openstack flavor create --ram 2048 --disk 20 --ephemeral 20 m1.small
起動例
最初にSSHキーペアを生成して、インスタンスの起動後にアクセスできるようにします。
mkdir -p ~/.ssh
touch ~/.ssh/id_rsa_cloud
chmod 600 ~/.ssh/id_rsa_cloud
openstack keypair create mykey > ~/.ssh/id_rsa_cloud
注:新しい公開鍵を生成する代わりに、既存の公開鍵をクラウドにアップロードすることもできます。
openstack keypair create --public-key ~/.ssh/id_rsa.pub mykey
これで、クラウドでインスタンスを起動できます。
openstack server create --image focal --flavor m1.small --key-name mykey \
--network internal focal-test
ボリュームを添付します
まず、燃えがらで10Gボリュームを作成します。
openstack volume create --size=10 <name-of-volume>
次に、起動したばかりのインスタンスにアタッチします。
openstack server add volume focal-test <name-of-volume>
インスタンスにログインすると、接続されているボリュームにアクセスできます(以下を参照)。フォーマットしてマウントする必要があります!
クラウドで起動したばかりのインスタンスにアクセスするには、このインスタンスにフローティングIPアドレスを割り当てる必要があります。
FIP=$(openstack floating ip create -f value -c floating_ip_address ext_net)
openstack server add floating ip focal-test $FIP
次に、SSH(およびping)を介したアクセスを許可します。次の手順を1回だけ実行する必要があります。
PROJECT_ID=$(openstack project list -f value -c ID \
--domain admin_domain)
SECGRP_ID=$(openstack security group list --project $PROJECT_ID \
| awk '/default/{print$2}')
openstack security group rule create $SECGRP_ID \
--protocol icmp --ingress --ethertype IPv4
openstack security group rule create $SECGRP_ID \
--protocol icmp --ingress --ethertype IPv6
openstack security group rule create $SECGRP_ID \
--protocol tcp --ingress --ethertype IPv4 --dst-port 22
openstack security group rule create $SECGRP_ID \
--protocol tcp --ingress --ethertype IPv6 --dst-port 22
これらのコマンドを実行すると、インスタンスにアクセスできるようになります。
ssh ubuntu@$FIP
OpenStackダッシュボードにログインします
まず、OpenStackダッシュボードのIPアドレスを決定します。
juju status openstack-dashboard
Webブラウザに次のURLを入力します:https:// dashboard-ip / horizon /
証明書を印刷します。
source openrc
env | grep OS_
次は何ですか?
OpenStackクラウドでのサービスの構成と管理は複雑です。ニーズに応じてOpenStackクラウドを構成する方法の完全なリファレンスについては、OpenStack管理ガイドを参照してください。
構成に使用したコマンドは次のとおりです。
juju deploy cs:bundle/openstack-base-70
おおよその出力は次のようになります。
Located bundle "cs:bundle/openstack-base-70"
Resolving charm: cs:ceph-mon-49
Resolving charm: cs:ceph-osd-304
Resolving charm: cs:ceph-radosgw-290
Resolving charm: cs:cinder-304
Resolving charm: cs:cinder-ceph-257
Resolving charm: cs:mysql-router-3
Resolving charm: cs:mysql-router-3
Resolving charm: cs:glance-298
Resolving charm: cs:mysql-router-3
Resolving charm: cs:keystone-317
Resolving charm: cs:mysql-router-3
Resolving charm: cs:mysql-innodb-cluster-1
Resolving charm: cs:neutron-api-287
Resolving charm: cs:neutron-api-plugin-ovn-1
Resolving charm: cs:mysql-router-3
Resolving charm: cs:nova-cloud-controller-346
Resolving charm: cs:nova-compute-319
Resolving charm: cs:mysql-router-3
Resolving charm: cs:ntp-41
Resolving charm: cs:openstack-dashboard-305
Resolving charm: cs:ovn-central-1
Resolving charm: cs:ovn-chassis-3
Resolving charm: cs:placement-12
Resolving charm: cs:mysql-router-3
Resolving charm: cs:rabbitmq-server-104
Resolving charm: cs:vault-40
Resolving charm: cs:mysql-router-3
Executing changes:
- upload charm cs:ceph-mon-49 for series focal
- deploy application ceph-mon on focal using cs:ceph-mon-49
- set annotations for ceph-mon
- upload charm cs:ceph-osd-304 for series focal
- deploy application ceph-osd on focal using cs:ceph-osd-304
- set annotations for ceph-osd
- upload charm cs:ceph-radosgw-290 for series focal
- deploy application ceph-radosgw on focal using cs:ceph-radosgw-290
- set annotations for ceph-radosgw
- upload charm cs:cinder-304 for series focal
- deploy application cinder on focal using cs:cinder-304
added resource policyd-override
- set annotations for cinder
- upload charm cs:cinder-ceph-257 for series focal
- deploy application cinder-ceph on focal using cs:cinder-ceph-257
- set annotations for cinder-ceph
- upload charm cs:mysql-router-3 for series focal
- deploy application cinder-mysql-router on focal using cs:mysql-router-3
- set annotations for cinder-mysql-router
- deploy application dashboard-mysql-router on focal using cs:mysql-router-3
- set annotations for dashboard-mysql-router
- upload charm cs:glance-298 for series focal
- deploy application glance on focal using cs:glance-298
added resource policyd-override
- set annotations for glance
- deploy application glance-mysql-router on focal using cs:mysql-router-3
- set annotations for glance-mysql-router
- upload charm cs:keystone-317 for series focal
- deploy application keystone on focal using cs:keystone-317
added resource policyd-override
- set annotations for keystone
- deploy application keystone-mysql-router on focal using cs:mysql-router-3
- set annotations for keystone-mysql-router
- upload charm cs:mysql-innodb-cluster-1 for series focal
- deploy application mysql-innodb-cluster on focal using cs:mysql-innodb-cluster-1
added resource mysql-shell
- set annotations for mysql-innodb-cluster
- upload charm cs:neutron-api-287 for series focal
- deploy application neutron-api on focal using cs:neutron-api-287
added resource policyd-override
- set annotations for neutron-api
- upload charm cs:neutron-api-plugin-ovn-1 for series focal
- deploy application neutron-api-plugin-ovn on focal using cs:neutron-api-plugin-ovn-1
- set annotations for neutron-api-plugin-ovn
- deploy application neutron-mysql-router on focal using cs:mysql-router-3
- set annotations for neutron-mysql-router
- upload charm cs:nova-cloud-controller-346 for series focal
- deploy application nova-cloud-controller on focal using cs:nova-cloud-controller-346
added resource policyd-override
- set annotations for nova-cloud-controller
- upload charm cs:nova-compute-319 for series focal
- deploy application nova-compute on focal using cs:nova-compute-319
- set annotations for nova-compute
- deploy application nova-mysql-router on focal using cs:mysql-router-3
- set annotations for nova-mysql-router
- upload charm cs:ntp-41 for series focal
- deploy application ntp on focal using cs:ntp-41
- set annotations for ntp
- upload charm cs:openstack-dashboard-305 for series focal
- deploy application openstack-dashboard on focal using cs:openstack-dashboard-305
added resource policyd-override
added resource theme
- set annotations for openstack-dashboard
- upload charm cs:ovn-central-1 for series focal
- deploy application ovn-central on focal using cs:ovn-central-1
- set annotations for ovn-central
- upload charm cs:ovn-chassis-3 for series focal
- deploy application ovn-chassis on focal using cs:ovn-chassis-3
- set annotations for ovn-chassis
- upload charm cs:placement-12 for series focal
- deploy application placement on focal using cs:placement-12
- set annotations for placement
- deploy application placement-mysql-router on focal using cs:mysql-router-3
- set annotations for placement-mysql-router
- upload charm cs:rabbitmq-server-104 for series focal
- deploy application rabbitmq-server on focal using cs:rabbitmq-server-104
- set annotations for rabbitmq-server
- upload charm cs:vault-40 for series focal
- deploy application vault on focal using cs:vault-40
added resource core
added resource vault
- set annotations for vault
- deploy application vault-mysql-router on focal using cs:mysql-router-3
- set annotations for vault-mysql-router
- add new machine 0
- add new machine 1
- add new machine 2
- add relation nova-compute:amqp - rabbitmq-server:amqp
- add relation nova-cloud-controller:identity-service - keystone:identity-service
- add relation glance:identity-service - keystone:identity-service
- add relation neutron-api:identity-service - keystone:identity-service
- add relation neutron-api:amqp - rabbitmq-server:amqp
- add relation glance:amqp - rabbitmq-server:amqp
- add relation nova-cloud-controller:image-service - glance:image-service
- add relation nova-compute:image-service - glance:image-service
- add relation nova-cloud-controller:cloud-compute - nova-compute:cloud-compute
- add relation nova-cloud-controller:amqp - rabbitmq-server:amqp
- add relation openstack-dashboard:identity-service - keystone:identity-service
- add relation nova-cloud-controller:neutron-api - neutron-api:neutron-api
- add relation cinder:image-service - glance:image-service
- add relation cinder:amqp - rabbitmq-server:amqp
- add relation cinder:identity-service - keystone:identity-service
- add relation cinder:cinder-volume-service - nova-cloud-controller:cinder-volume-service
- add relation cinder-ceph:storage-backend - cinder:storage-backend
- add relation ceph-mon:client - nova-compute:ceph
- add relation nova-compute:ceph-access - cinder-ceph:ceph-access
- add relation ceph-mon:client - cinder-ceph:ceph
- add relation ceph-mon:client - glance:ceph
- add relation ceph-osd:mon - ceph-mon:osd
- add relation ntp:juju-info - nova-compute:juju-info
- add relation ceph-radosgw:mon - ceph-mon:radosgw
- add relation ceph-radosgw:identity-service - keystone:identity-service
- add relation placement - keystone
- add relation placement - nova-cloud-controller
- add relation keystone:shared-db - keystone-mysql-router:shared-db
- add relation cinder:shared-db - cinder-mysql-router:shared-db
- add relation glance:shared-db - glance-mysql-router:shared-db
- add relation nova-cloud-controller:shared-db - nova-mysql-router:shared-db
- add relation neutron-api:shared-db - neutron-mysql-router:shared-db
- add relation openstack-dashboard:shared-db - dashboard-mysql-router:shared-db
- add relation placement:shared-db - placement-mysql-router:shared-db
- add relation vault:shared-db - vault-mysql-router:shared-db
- add relation keystone-mysql-router:db-router - mysql-innodb-cluster:db-router
- add relation cinder-mysql-router:db-router - mysql-innodb-cluster:db-router
- add relation nova-mysql-router:db-router - mysql-innodb-cluster:db-router
- add relation glance-mysql-router:db-router - mysql-innodb-cluster:db-router
- add relation neutron-mysql-router:db-router - mysql-innodb-cluster:db-router
- add relation dashboard-mysql-router:db-router - mysql-innodb-cluster:db-router
- add relation placement-mysql-router:db-router - mysql-innodb-cluster:db-router
- add relation vault-mysql-router:db-router - mysql-innodb-cluster:db-router
- add relation neutron-api-plugin-ovn:neutron-plugin - neutron-api:neutron-plugin-api-subordinate
- add relation ovn-central:certificates - vault:certificates
- add relation ovn-central:ovsdb-cms - neutron-api-plugin-ovn:ovsdb-cms
- add relation neutron-api:certificates - vault:certificates
- add relation ovn-chassis:nova-compute - nova-compute:neutron-plugin
- add relation ovn-chassis:certificates - vault:certificates
- add relation ovn-chassis:ovsdb - ovn-central:ovsdb
- add relation vault:certificates - neutron-api-plugin-ovn:certificates
- add relation vault:certificates - cinder:certificates
- add relation vault:certificates - glance:certificates
- add relation vault:certificates - keystone:certificates
- add relation vault:certificates - nova-cloud-controller:certificates
- add relation vault:certificates - openstack-dashboard:certificates
- add relation vault:certificates - placement:certificates
- add relation vault:certificates - ceph-radosgw:certificates
- add unit ceph-osd/0 to new machine 0
- add unit ceph-osd/1 to new machine 1
- add unit ceph-osd/2 to new machine 2
- add unit nova-compute/0 to new machine 0
- add unit nova-compute/1 to new machine 1
- add unit nova-compute/2 to new machine 2
- add lxd container 0/lxd/0 on new machine 0
- add lxd container 1/lxd/0 on new machine 1
- add lxd container 2/lxd/0 on new machine 2
- add lxd container 0/lxd/1 on new machine 0
- add lxd container 1/lxd/1 on new machine 1
- add lxd container 2/lxd/1 on new machine 2
- add lxd container 0/lxd/2 on new machine 0
- add lxd container 0/lxd/3 on new machine 0
- add lxd container 1/lxd/2 on new machine 1
- add lxd container 2/lxd/2 on new machine 2
- add lxd container 1/lxd/3 on new machine 1
- add lxd container 0/lxd/4 on new machine 0
- add lxd container 1/lxd/4 on new machine 1
- add lxd container 0/lxd/5 on new machine 0
- add lxd container 1/lxd/5 on new machine 1
- add lxd container 2/lxd/3 on new machine 2
- add lxd container 2/lxd/4 on new machine 2
- add lxd container 2/lxd/5 on new machine 2
- add lxd container 0/lxd/6 on new machine 0
- add unit ceph-mon/0 to 0/lxd/0
- add unit ceph-mon/1 to 1/lxd/0
- add unit ceph-mon/2 to 2/lxd/0
- add unit ceph-radosgw/0 to 0/lxd/1
- add unit cinder/0 to 1/lxd/1
- add unit glance/0 to 2/lxd/1
- add unit keystone/0 to 0/lxd/2
- add unit mysql-innodb-cluster/0 to 0/lxd/3
- add unit mysql-innodb-cluster/1 to 1/lxd/2
- add unit mysql-innodb-cluster/2 to 2/lxd/2
- add unit neutron-api/0 to 1/lxd/3
- add unit nova-cloud-controller/0 to 0/lxd/4
- add unit openstack-dashboard/0 to 1/lxd/4
- add unit ovn-central/0 to 0/lxd/5
- add unit ovn-central/1 to 1/lxd/5
- add unit ovn-central/2 to 2/lxd/3
- add unit placement/0 to 2/lxd/4
- add unit rabbitmq-server/0 to 2/lxd/5
- add unit vault/0 to 0/lxd/6
Deploy of bundle completed.