Tripleoアプローチによるopenstackのデプロイメントを継続して、LinuxTechiユーザーを歓迎します。このチュートリアルでは、KVMハイパーバイザーでホストされているCentOS 7 VMで、アンダークラウドを介してトリプルオーバークラウドサーバー(コントローラーとコンピューティング)をデプロイする方法について説明します。
前回の記事では、ラボのセットアップの詳細とCentOS7へのtripleoUndercloudのインストールについてすでに説明しました。アンダークラウドのインストール手順については、以下を参照してください。
-
CentOS 7にTripleo(Openstack on Openstack)UnderCloudをインストールする方法
アンダークラウドはすでにインストールおよび構成されていると想定しています。オーバークラウドの導入手順を始めましょう。
ステップ:1オーバークラウドイメージのダウンロードとインポート
スタックユーザーとしてアンダークラウドサーバーにログインし、以下のURLからオーバークラウドイメージをダウンロードします。私の場合、最新バージョンのopenstack(つまり、pike)を使用しています。ご使用の環境に適したイメージと、openstackバージョンをダウンロードできます。
>https://images.rdoproject.org/pike/delorean/current-tripleo-rdo/
[[email protected] ~]$ sudo wget https://images.rdoproject.org/pike/delorean/current-tripleo-rdo/overcloud-full.tar --no-check-certificate [[email protected] ~]$ sudo wget https://images.rdoproject.org/pike/delorean/current-tripleo-rdo/ironic-python-agent.tar --no-check-certificate [[email protected] ~]$ mkdir ~/images [[email protected] ~]$ tar -xpvf ironic-python-agent.tar -C ~/images/ [[email protected] ~]$ tar -xpvf overcloud-full.tar -C ~/images/ [[email protected] ~]$ source ~/stackrc (undercloud) [[email protected] ~]$ openstack overcloud image upload --image-path ~/images/
アップロードされた画像を表示します
(undercloud) [[email protected] ~]$ openstack image list +--------------------------------------+------------------------+--------+ | ID | Name | Status | +--------------------------------------+------------------------+--------+ | 003300db-bbe1-4fc3-af39-bca9f56cc169 | bm-deploy-kernel | active | | 1a1d7ddf-9287-40fb-aea5-3aacf41e76a2 | bm-deploy-ramdisk | active | | be978ecb-2d33-4faf-80c0-8cb0625f1a45 | overcloud-full | active | | 0c0c74bc-0b0f-4324-81b4-e0abeed9455e | overcloud-full-initrd | active | | 0bf28731-d645-401f-9557-f24b3b8a6912 | overcloud-full-vmlinuz | active | +--------------------------------------+------------------------+--------+ (undercloud) [[email protected] ~]$
ステップ:2アンダークラウドネットワークにDNSサーバーを追加する
以下のopenstackコマンドを使用して、サブネットを表示します
(undercloud) [[email protected] ~]$ openstack subnet list +--------------------------------------+-----------------+--------------------------------------+------------------+ | ID | Name | Network | Subnet | +--------------------------------------+-----------------+--------------------------------------+------------------+ | b3c8033d-ea58-44f3-8de1-5d5e29cad74b | ctlplane-subnet | fe1c940b-7f89-428a-86e1-2d134ce8d807 | 192.168.126.0/24 | +--------------------------------------+-----------------+--------------------------------------+------------------+ (undercloud) [[email protected] ~]$ openstack subnet show b3c8033d-ea58-44f3-8de1-5d5e29cad74b
以下のコマンドを使用して、dnsサーバーを追加します
(undercloud) [[email protected] ~]$ neutron subnet-update b3c8033d-ea58-44f3-8de1-5d5e29cad74b --dns-nameserver 192.168.122.1
次に、DNSサーバーが追加されているかどうかを確認します
(undercloud) [[email protected] ~]$ openstack subnet show b3c8033d-ea58-44f3-8de1-5d5e29cad74b
出力は次のようになります
ステップ:3オーバークラウドのコントローラーとコンピューティング用のVMを作成する
物理サーバーまたはKVMハイパーバイザーに移動し、コンピューティング用に2つのVMを定義し、コントローラーノード用に1つのVMを定義します。
以下のコマンドを使用して、コントローラーおよびコンピューティングVM用のqcow2イメージを作成します。
[[email protected] ~]# cd /var/lib/libvirt/images/ [[email protected] images]# qemu-img create -f qcow2 -o preallocation=metadata overcloud-controller.qcow2 60G [[email protected] images]# qemu-img create -f qcow2 -o preallocation=metadata overcloud-compute1.qcow2 60G [[email protected] images]# qemu-img create -f qcow2 -o preallocation=metadata overcloud-compute2.qcow2 60G [[email protected] images]# chown qemu:qemu overcloud-*
以下のVirt-installおよびvirshdefineコマンドを使用して、KVMハイパーバイザーでオーバークラウドVMを作成および定義します。
注:ご使用の環境に合わせてRAM、vcpu、およびCPUファミリーを変更してください
[[email protected] ~]# virt-install --ram 8192 --vcpus 2 --os-variant rhel7 --disk path=/var/lib/libvirt/images/overcloud-controller.qcow2,device=disk,bus=virtio,format=qcow2 --noautoconsole --vnc --network network:provisioning --network network:external --name overcloud-controller --cpu Haswell,+vmx --dry-run --print-xml > /tmp/overcloud-controller.xml [[email protected] ~]# [[email protected] ~]# virt-install --ram 8192 --vcpus 2 --os-variant rhel7 --disk path=/var/lib/libvirt/images/overcloud-compute1.qcow2,device=disk,bus=virtio,format=qcow2 --noautoconsole --vnc --network network:provisioning --network network:external --name overcloud-compute1 --cpu Haswell,+vmx --dry-run --print-xml > /tmp/overcloud-compute1.xml [[email protected] ~]# [[email protected] ~]# virt-install --ram 8192 --vcpus 2 --os-variant rhel7 --disk path=/var/lib/libvirt/images/overcloud-compute2.qcow2,device=disk,bus=virtio,format=qcow2 --noautoconsole --vnc --network network:provisioning --network network:external --name overcloud-compute2 --cpu Haswell,+vmx --dry-run --print-xml > /tmp/overcloud-compute2.xml [[email protected] ~]# [[email protected] ~]# virsh define --file /tmp/overcloud-controller.xml [[email protected] ~]# virsh define --file /tmp/overcloud-compute1.xml [[email protected] ~]# virsh define --file /tmp/overcloud-compute2.xml
virshlistコマンドを使用してVMのステータスを確認します
[[email protected] ~]# virsh list --all | grep overcloud* - overcloud-compute1 shut off - overcloud-compute2 shut off - overcloud-controller shut off [[email protected] ~]#
ステップ:4アンダークラウドにvbmc(仮想BMC)をインストールして構成する
Vbmcは仮想マシン用の電力管理ツールであり、VMはipmitoolを介して管理できます。
vbmcを使用すると、VMの電源をオフにしたり、オンにしたり、電源の状態を確認したりできます。導入中にアンダークラウドでVMの電源をオン/オフする必要があるため、vbmcが必要です。
注: pxe_sshは現在減価償却されているため、vbmcはpxe_sshの代わりになります。
以下のyuminstallコマンドを実行してvirtualbmcをインストールします
[[email protected] ~]$ sudo yum install python-virtualbmc -y
sshキーをcloudcloudvmから物理サーバー(KVMハイパーバイザー)に交換します
[[email protected] ~]$ ssh-copy-id [email protected]
次のコマンドを使用してVMをvbmcに追加します。私の場合、libvirt-uriは「 qemu + ssh://[メール保護] 」
[[email protected] ~]$ vbmc add overcloud-compute1 --port 6001 --username admin --password password --libvirt-uri qemu+ssh://[email protected]/system [[email protected] ~]$ vbmc start overcloud-compute1 [[email protected] ~]$ vbmc add overcloud-compute2 --port 6002 --username admin --password password --libvirt-uri qemu+ssh://[email protected]/system [[email protected] ~]$ vbmc start overcloud-compute2 [[email protected] ~]$ vbmc add overcloud-controller --port 6003 --username admin --password password --libvirt-uri qemu+ssh://[email protected]/system [[email protected] ~]$ vbmc start overcloud-controller
VMのステータスとそのポートを確認します。
[[email protected] ~]$ vbmc list +----------------------+---------+---------+------+ | Domain name | Status | Address | Port | +----------------------+---------+---------+------+ | overcloud-compute1 | running | :: | 6001 | | overcloud-compute2 | running | :: | 6002 | | overcloud-controller | running | :: | 6003 | +----------------------+---------+---------+------+ [[email protected] ~]$
VMの電源ステータスを表示するには、以下のコマンドを使用します
[[email protected] ~]$ ipmitool -I lanplus -U admin -P password -H 127.0.0.1 -p 6001 power status Chassis Power is off [[email protected] ~]$ ipmitool -I lanplus -U admin -P password -H 127.0.0.1 -p 6002 power status Chassis Power is off [[email protected] ~]$ ipmitool -I lanplus -U admin -P password -H 127.0.0.1 -p 6003 power status Chassis Power is off [[email protected] ~]$
ステップ:5jsonファイルを介してオーバークラウドノードのインベントリを作成およびインポートする
インベントリファイル(json)を作成しましょう。これには、オーバークラウドサーバー(コントローラーとコンピューティング)の詳細が含まれます。
最初にクラウドノード上のMACアドレスをキャプチャします。このために、kvmハイパーバイザーは以下のコマンドを実行します
[[email protected] ~]# virsh domiflist overcloud-compute1 | grep provisioning - network provisioning virtio 52:54:00:08:63:bd [[email protected] ~]# virsh domiflist overcloud-compute2 | grep provisioning - network provisioning virtio 52:54:00:72:1d:21 [[email protected] ~]# virsh domiflist overcloud-controller | grep provisioning - network provisioning virtio 52:54:00:0a:dd:57 [[email protected] ~]#
次に、「overcloud-stackenv.json」という名前のjsonファイルを作成します
[[email protected] ~]$ vi overcloud-stackenv.json { "nodes": [ { "arch": "x86_64", "disk": "60", "memory": "8192", "name": "overcloud-compute1", "pm_user": "admin", "pm_addr": "127.0.0.1", "pm_password": "password", "pm_port": "6001", "pm_type": "pxe_ipmitool", "mac": [ "52:54:00:08:63:bd" ], "cpu": "2" }, { "arch": "x86_64", "disk": "60", "memory": "8192", "name": "overcloud-compute2", "pm_user": "admin", "pm_addr": "127.0.0.1", "pm_password": "password", "pm_port": "6002", "pm_type": "pxe_ipmitool", "mac": [ "52:54:00:72:1d:21" ], "cpu": "2" }, { "arch": "x86_64", "disk": "60", "memory": "8192", "name": "overcloud-controller", "pm_user": "admin", "pm_addr": "127.0.0.1", "pm_password": "password", "pm_port": "6003", "pm_type": "pxe_ipmitool", "mac": [ "52:54:00:0a:dd:57" ], "cpu": "2" } ] }
ご使用の環境に適したVMのMACアドレスを置き換えてください。
ノードをインポートし、以下のコマンドを使用してイントロスペクションを実行します
[[email protected] ~]$ source stackrc (undercloud) [[email protected] ~]$ openstack overcloud node import --introspect --provide overcloud-stackenv.json
上記のコマンドの出力は、次のようになります。
以下のコマンドを使用してオーバークラウドノードの詳細を表示し、各ノードのプロビジョニング状態が利用可能であることを確認する必要があります。
(undercloud) [[email protected] ~]$ openstack baremetal node list +--------------------------------------+----------------------+---------------+-------------+--------------------+-------------+ | UUID | Name | Instance UUID | Power State | Provisioning State | Maintenance | +--------------------------------------+----------------------+---------------+-------------+--------------------+-------------+ | 44884524-a959-4477-87f9-143f716f422b | overcloud-compute1 | None | power off | available | False | | 445ced0a-d449-419e-8c43-e0f124017300 | overcloud-compute2 | None | power off | available | False | | a625fdfa-9a18-4d7c-aa36-492575f19307 | overcloud-controller | None | power off | available | False | +--------------------------------------+----------------------+---------------+-------------+--------------------+-------------+ (undercloud) [[email protected] ~]$
ロールまたはプロファイルをオーバークラウドノードに設定します:
各オーバークラウドノードに役割を設定するには、以下のコマンドを使用します。 「overloud-compute1/ 2」という名前のVM 」はopenstackコンピューティングとして機能します 「overcloud-controller」という名前のノードとVM 」はopenstackcomputeとして機能します ノード。
(undercloud) [[email protected] ~]$ openstack baremetal node set --property capabilities='profile:compute,boot_option:local' 44884524-a959-4477-87f9-143f716f422b (undercloud) [[email protected] ~]$ openstack baremetal node set --property capabilities='profile:compute,boot_option:local' 445ced0a-d449-419e-8c43-e0f124017300 (undercloud) [[email protected] ~]$ openstack baremetal node set --property capabilities='profile:control,boot_option:local' a625fdfa-9a18-4d7c-aa36-492575f19307
次に、以下のopenstackコマンドを使用して、各ノードの役割を確認します。
(undercloud) [[email protected] ~]$ openstack overcloud profiles list +--------------------------------------+----------------------+-----------------+-----------------+-------------------+ | Node UUID | Node Name | Provision State | Current Profile | Possible Profiles | +--------------------------------------+----------------------+-----------------+-----------------+-------------------+ | 44884524-a959-4477-87f9-143f716f422b | overcloud-compute1 | available | compute | | | 445ced0a-d449-419e-8c43-e0f124017300 | overcloud-compute2 | available | compute | | | a625fdfa-9a18-4d7c-aa36-492575f19307 | overcloud-controller | available | control | | +--------------------------------------+----------------------+-----------------+-----------------+-------------------+ (undercloud) [[email protected] ~]$
ステップ:6オーバークラウドノードのデプロイを開始します
これで、アンダークラウドサーバーからのオーバークラウドのデプロイに必要なすべての手順が完了しました。
undercloudから以下のopenstackコマンドを実行して、デプロイを開始します。
(undercloud) [[email protected] ~]$ openstack overcloud deploy --templates --control-scale 1 --compute-scale 2 --control-flavor control --compute-flavor compute
上記のコマンドでは、「 –compute-scale2」などのオプションを使用しています。 」および「– control-scale 1 「つまり、2つの計算ノードと1つのコントローラーノードを使用するということです。
上記のコマンドには約1時間かかりますのでご注意ください。ハードウェアまたはVMのパフォーマンスに応じて、40〜50分以上。したがって、上記のコマンドが終了しないまで待つ必要があります
上記のコマンドの出力は次のようになります。
以下のコマンドを実行して、オーバークラウドノードのIPアドレスを表示します
(undercloud) [[email protected] ~]$ nova list +--------------------------------------+-------------------------+--------+------------+-------------+--------------------------+ | ID | Name | Status | Task State | Power State | Networks | +--------------------------------------+-------------------------+--------+------------+-------------+--------------------------+ | 8c1a556f-9f79-449b-ae15-d111a96b8349 | overcloud-controller-0 | ACTIVE | - | Running | ctlplane=192.168.126.107 | | 31e54540-79a3-4182-8ecc-6e0f8cd3db11 | overcloud-novacompute-0 | ACTIVE | - | Running | ctlplane=192.168.126.101 | | edab92ce-825f-48c0-ba83-1445572c15b9 | overcloud-novacompute-1 | ACTIVE | - | Running | ctlplane=192.168.126.106 | +--------------------------------------+-------------------------+--------+------------+-------------+--------------------------+ (undercloud) [[email protected] ~]$
「heat-admin」を使用してオーバークラウドノードに接続します ‘ユーザー:
(undercloud) [[email protected] ~]$ ssh [email protected] Last login: Tue Jan 16 14:32:55 2018 from gateway [[email protected] ~]$ sudo -i [[email protected] ~]# hostname -f overcloud-controller-0.localdomain [[email protected] ~]#
同様に、残りの計算ノードに接続できます
オーバークラウドが正常にデプロイされると、すべての管理者クレデンシャルがファイル「 overcloudrc」に保存されます。 スタックユーザーのホームディレクトリにある」
(undercloud) [[email protected] ~]$ cat ~/overcloudrc
次に、overcloudrcファイルに記載されているクレデンシャルを使用してHorizonダッシュボードにアクセスしてみます。
Webブラウザを開き、URLを入力します:
http://192.168.126.103/dashboard
これにより、オーバークラウドが正常にデプロイされたことを確認できます。次に、プロジェクト、ネットワークを作成し、クラウドイメージをアップロードしてから、仮想マシンの作成を開始します。このチュートリアルは以上です。フィードバックやコメントを共有してください。