Bentornati utenti LinuxTechi, con la continuazione della nostra distribuzione openstack con approccio Tripleo. In questo tutorial discuteremo i passaggi su come distribuire server tripleo overcloud (controller e calcolo) tramite undercloud su macchine virtuali CentOS 7 ospitate in hypervisor KVM.
Nel nostro ultimo articolo abbiamo già discusso i dettagli di configurazione del nostro laboratorio e l'installazione di tripleo Undercloud su CentOS 7, per i passaggi di installazione sottocloud fare riferimento a:
-
Come installare Tripleo (Openstack su Openstack) UnderCloud su CentOS 7
Presumo che undercloud sia già installato e configurato. Iniziamo i passaggi per la distribuzione in overcloud.
Passaggio:1 Scarica e importa le immagini di Overcloud
Accedi al server undercloud come utente stack e scarica le immagini overcloud dall'URL sottostante, nel mio caso sto usando l'ultima versione di openstack (cioè pike), puoi scaricare le immagini che si adattano al tuo ambiente e alla versione 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/
Ora visualizza le immagini caricate
(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] ~]$
Passaggio:2 Aggiungi il server DNS nella rete undercloud
Usa il comando openstack sotto per visualizzare la sottorete
(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
Usa il comando seguente per aggiungere il server DNS
(undercloud) [[email protected] ~]$ neutron subnet-update b3c8033d-ea58-44f3-8de1-5d5e29cad74b --dns-nameserver 192.168.122.1
Ora verifica se il server DNS è stato aggiunto o meno
(undercloud) [[email protected] ~]$ openstack subnet show b3c8033d-ea58-44f3-8de1-5d5e29cad74b
L'output sarebbe qualcosa come di seguito
Fase:3 Crea VM per Controller &Compute di Overcloud
Vai al server fisico o all'hypervisor KVM e definisci due VM per il calcolo e una per il nodo controller.
Usa i comandi seguenti per creare un'immagine qcow2 per controller e VM di calcolo.
[[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-*
Utilizzare i comandi Virt-install e virsh define di seguito per creare e definire macchine virtuali overcloud nell'hypervisor KVM,
Nota:cambia la famiglia di RAM, vcpu e CPU adatta al tuo ambiente
[[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
Verifica lo stato delle macchine virtuali utilizzando il comando virsh list,
[[email protected] ~]# virsh list --all | grep overcloud* - overcloud-compute1 shut off - overcloud-compute2 shut off - overcloud-controller shut off [[email protected] ~]#
Fase:4 Installa e configura vbmc (Virtual BMC) su undercloud
Vbmc è uno strumento di gestione dell'alimentazione per macchine virtuali, le VM possono essere gestite tramite ipmitool.
Usando vbmc possiamo spegnere, accendere e anche verificare lo stato di alimentazione di una VM. Abbiamo bisogno di vbmc poiché undercloud richiederà l'accensione/spegnimento delle VM durante la distribuzione.
Nota: vbmc è la sostituzione di pxe_ssh poiché pxe_ssh è ora deprezzato.
Esegui sotto il comando yum install per installare virtualbmc,
[[email protected] ~]$ sudo yum install python-virtualbmc -y
Scambia le chiavi ssh da cloudcloud vm al server fisico (hypervisor KVM)
[[email protected] ~]$ ssh-copy-id [email protected]
Aggiungi le macchine virtuali a vbmc utilizzando i seguenti comandi, nel mio caso libvirt-uri è "qemu+ssh://[email protected] ”
[[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
Verifica lo stato delle VM e le relative porte,
[[email protected] ~]$ vbmc list +----------------------+---------+---------+------+ | Domain name | Status | Address | Port | +----------------------+---------+---------+------+ | overcloud-compute1 | running | :: | 6001 | | overcloud-compute2 | running | :: | 6002 | | overcloud-controller | running | :: | 6003 | +----------------------+---------+---------+------+ [[email protected] ~]$
Per visualizzare lo stato di alimentazione delle macchine virtuali, utilizzare il comando seguente
[[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] ~]$
Passaggio:5 Crea e importa l'inventario dei nodi overcloud tramite file json
Creiamo un file di inventario (json), che includerà i dettagli dei server overcloud (controller e calcolo).
Per prima cosa acquisisci l'indirizzo mac di nodi su cloud, per questo l'hypervisor kvm esegue i comandi seguenti
[[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] ~]#
Ora crea un file json con il nome "overcloud-stackenv.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" } ] }
Sostituisci l'indirizzo mac delle VM che si adatta al tuo ambiente.
Importa i nodi ed esegui l'introspezione utilizzando il comando seguente
[[email protected] ~]$ source stackrc (undercloud) [[email protected] ~]$ openstack overcloud node import --introspect --provide overcloud-stackenv.json
L'output del comando precedente dovrebbe essere qualcosa di simile al seguente:
Visualizza i dettagli del nodo overcloud utilizzando il comando seguente e dobbiamo assicurarci che lo stato di provisioning di ciascun nodo sia disponibile:
(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] ~]$
Imposta ruoli o profilo su nodi overcloud:
Per impostare il ruolo su ciascun nodo overcloud, utilizzare i comandi seguenti. Macchine virtuali con nome "overloud-compute1/2 ” agirà come un calcolo openstack nodo e VM con il nome "overcloud-controller ” fungerà da calcolo openstack nodo.
(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
Ora usa il comando sotto openstack per verificare il ruolo di ciascun nodo,
(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] ~]$
Fase:6 Avvia la distribuzione dei nodi Overcloud
A partire da ora abbiamo completato tutti i passaggi necessari per la distribuzione overcloud dal server undercloud,
Esegui il comando openstack di seguito da undercloud per avviare la distribuzione,
(undercloud) [[email protected] ~]$ openstack overcloud deploy --templates --control-scale 1 --compute-scale 2 --control-flavor control --compute-flavor compute
Nel comando precedente utilizziamo opzioni come "–compute-scale 2 ” e “–scala di controllo 1 ", significa che utilizzeremo due nodi di calcolo e un nodo controller.
Si prega di notare che il comando sopra richiederà ca. Da 40 a 50 minuti o più a seconda dell'hardware o delle prestazioni della macchina virtuale. Quindi, devi aspettare fino a quando il comando precedente non sarà terminato
L'output del comando precedente dovrebbe essere qualcosa del tipo di seguito:
Esegui il comando sottostante per visualizzare l'indirizzo IP dei nodi overcloud
(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] ~]$
Connettiti ai nodi Over Cloud utilizzando "heat-admin ' utente:
(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] ~]#
Allo stesso modo possiamo connetterci al resto dei nodi di calcolo
Una volta che l'overcloud è stato distribuito correttamente, tutte le credenziali dell'amministratore vengono archiviate nel file "overcloudrc ” nella directory home dell'utente dello stack
(undercloud) [[email protected] ~]$ cat ~/overcloudrc
Ora prova ad accedere a Horizon Dashboard usando le credenziali menzionate nel file overcloudrc.
Apri il browser web e digita l'URL:
http://192.168.126.103/dashboard
Ciò conferma che l'overcloud è stato distribuito correttamente. Ora crea progetti, reti e carica immagini cloud e poi inizi a creare macchine virtuali. Questo è tutto da questo tutorial, per favore condividi il tuo feedback e commenti.