GNU/Linux >> Tutoriels Linux >  >> Cent OS

Comment déployer TripleO Overcloud (contrôleur, calcul) sur des machines virtuelles CentOS 7

Bienvenue aux utilisateurs de LinuxTechi, avec la poursuite de notre déploiement openstack avec l'approche Tripleo. Dans ce didacticiel, nous discuterons des étapes à suivre pour déployer des serveurs tripleo overcloud (contrôleur et calcul) via un sous-cloud sur des machines virtuelles CentOS 7 hébergées dans un hyperviseur KVM.

Dans notre dernier article, nous avons déjà discuté des détails de configuration de notre laboratoire et de l'installation de tripleo Undercloud sur CentOS 7, pour les étapes d'installation sous-cloud, reportez-vous :

  • Comment installer Tripleo (Openstack sur Openstack) UnderCloud sur CentOS 7

Je suppose que undercloud est déjà installé et configuré. Commençons les étapes de déploiement sur le cloud.

Étape 1 Télécharger et importer des images Overcloud

Connectez-vous au serveur undercloud en tant qu'utilisateur de la pile et téléchargez les images overcloud à partir de l'URL ci-dessous. Dans mon cas, j'utilise la dernière version d'openstack (c'est-à-dire le brochet), vous pouvez télécharger les images qui conviennent à votre environnement et à la version d'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/

Visualisez maintenant les images téléchargées

(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] ~]$

Étape 2 Ajouter un serveur DNS au réseau sous-cloud

Utilisez la commande openstack ci-dessous pour afficher le sous-réseau

(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

Utilisez la commande ci-dessous pour ajouter un serveur DNS

(undercloud) [[email protected] ~]$ neutron subnet-update  b3c8033d-ea58-44f3-8de1-5d5e29cad74b --dns-nameserver 192.168.122.1

Vérifiez maintenant si le serveur DNS a été ajouté ou non

(undercloud) [[email protected] ~]$ openstack subnet show b3c8033d-ea58-44f3-8de1-5d5e29cad74b

La sortie serait quelque chose comme ci-dessous

Étape 3 Créer des VM pour le contrôleur et le calcul d'Overcloud

Accédez au serveur physique ou à l'hyperviseur KVM et définissez deux VM pour le calcul et une pour le nœud de contrôleur.

Utilisez les commandes ci-dessous pour créer une image qcow2 pour les VM de contrôleur et de calcul.

[[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-*

Utilisez ci-dessous la commande Virt-install et virsh define pour créer et définir des vms overcloud dans l'hyperviseur KVM,

Remarque :Modifiez la RAM, le vcpu et la famille de processeurs en fonction de votre environnement

[[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

Vérifiez l'état des machines virtuelles à l'aide de la commande virsh list,

[[email protected] ~]# virsh list --all | grep overcloud*
 -     overcloud-compute1             shut off
 -     overcloud-compute2             shut off
 -     overcloud-controller           shut off
[[email protected] ~]#

Étape 4 Installez et configurez vbmc (Virtual BMC) sur un sous-cloud

Vbmc est un outil de gestion de l'alimentation pour les machines virtuelles, les machines virtuelles peuvent être gérées via ipmitool.

En utilisant vbmc, nous pouvons éteindre, allumer et également vérifier l'état d'alimentation d'une machine virtuelle. Nous avons besoin de vbmc, car le sous-cloud nécessitera l'activation/la désactivation des VM pendant le déploiement.

Remarque : vbmc remplace pxe_ssh car pxe_ssh est désormais déprécié.

Exécutez la commande ci-dessous yum install pour installer virtualbmc,

[[email protected] ~]$ sudo yum install python-virtualbmc -y

Échangez les clés ssh de cloudcloud vm vers le serveur physique (hyperviseur KVM)

[[email protected] ~]$ ssh-copy-id [email protected]

Ajoutez les machines virtuelles à vbmc à l'aide des commandes suivantes. Dans mon cas, libvirt-uri est "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

Vérifier l'état de la VM et ses ports,

[[email protected] ~]$ vbmc list
+----------------------+---------+---------+------+
|     Domain name      |  Status | Address | Port |
+----------------------+---------+---------+------+
|  overcloud-compute1  | running |    ::   | 6001 |
|  overcloud-compute2  | running |    ::   | 6002 |
| overcloud-controller | running |    ::   | 6003 |
+----------------------+---------+---------+------+
[[email protected] ~]$

Pour afficher l'état d'alimentation des machines virtuelles, utilisez la commande ci-dessous,

[[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] ~]$

Étape 5 Créer et importer l'inventaire des nœuds overcloud via un fichier JSON

Créons un fichier d'inventaire (json), il inclura les détails des serveurs overcloud (contrôleurs et calcul).

Capturez d'abord l'adresse mac des nœuds sur le cloud, pour cela, l'hyperviseur kvm exécute les commandes ci-dessous

[[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] ~]#

Créez maintenant un fichier json avec le nom "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"
    }
  ]
}

Remplacez l'adresse mac des VM qui convient à votre environnement.

Importez les nœuds et faites l'introspection en utilisant la commande ci-dessous

[[email protected] ~]$ source stackrc
(undercloud) [[email protected] ~]$ openstack overcloud node import --introspect --provide overcloud-stackenv.json

La sortie de la commande ci-dessus devrait être quelque chose comme ci-dessous :

Affichez les détails du nœud overcloud à l'aide de la commande ci-dessous et nous devons nous assurer que l'état de provisionnement de chaque nœud doit être disponible :

(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] ~]$
Définissez des rôles ou un profil pour les nœuds overcloud :

Pour définir le rôle sur chaque nœud overcloud, utilisez les commandes ci-dessous. VM avec le nom "overloud-compute1/2 ” agira comme un calcul openstack nœud et VM avec le nom "overcloud-controller ” agira comme calcul openstack nœud.

(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

Utilisez maintenant la commande openstack ci-dessous pour vérifier le rôle de chaque nœud,

(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] ~]$

Étape : 6 Démarrer le déploiement des nœuds Overcloud

À partir de maintenant, nous avons terminé toutes les étapes nécessaires au déploiement sur le cloud à partir d'un serveur sous le cloud,

Exécutez la commande openstack ci-dessous depuis undercloud pour démarrer le déploiement,

(undercloud) [[email protected] ~]$ openstack overcloud deploy --templates   --control-scale 1 --compute-scale 2 --control-flavor control --compute-flavor compute

Dans la commande ci-dessus, nous utilisons les options telles que "–compute-scale 2 ” et “–control-scale 1 ", cela signifie que nous utiliserons deux nœuds de calcul et un nœud de contrôleur.

Veuillez noter que la commande ci-dessus prendra environ. 40 à 50 minutes ou plus selon les performances du matériel ou de la vm. Donc, vous devez attendre que la commande ci-dessus ne se termine pas

Le résultat de la commande ci-dessus devrait ressembler à ceci :

Exécutez la commande ci-dessous pour afficher l'adresse IP des nœuds 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] ~]$

Connectez-vous aux nœuds Over Cloud à l'aide de 'heat-admin ' utilisateur :

(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] ~]#

De même, nous pouvons nous connecter au reste des nœuds de calcul

Une fois l'overcloud déployé avec succès, toutes les informations d'identification de l'administrateur sont stockées dans le fichier "overcloudrc " dans le répertoire personnel de l'utilisateur de la pile

(undercloud) [[email protected] ~]$ cat ~/overcloudrc

Essayez maintenant d'accéder au tableau de bord Horizon en utilisant les informations d'identification mentionnées dans le fichier overcloudrc.

Ouvrez le navigateur Web et saisissez l'URL :

http://192.168.126.103/tableau de bord

Cela confirme que l'overcloud a été déployé avec succès. Maintenant, créez des projets, des réseaux et téléchargez des images cloud, puis vous commencez à créer des machines virtuelles. C'est tout de ce tutoriel, s'il vous plaît partagez vos commentaires et commentaires.


Cent OS
  1. Comment déployer Mattermost sur CentOS 7

  2. Comment déployer Rocket.Chat sur CentOS 7

  3. Comment déployer CDP sur un serveur CentOS

  4. Comment installer ownCloud sur CentOS 7

  5. Comment déployer Ruby + Passenger + Nginx sur CentOS Linux

Comment configurer une adresse IP statique dans RHEL 8 / CentOS 8

Comment installer Docker CE sur CentOS 8 / RHEL 8

Comment installer Prometheus sur CentOS 8 / RHEL 8

Comment déployer un cluster partagé MongoDB sur CentOS 7

Comment installer Ansible AWX sur CentOS 7

Installation du contrôleur de domaine Samba 4 sur CentOS 7