IT Blog

Ce sera un tutoriel complet sur l’installation d’OpenStack (configuration minimale). J’aimerais beaucoup essayer le système d’exploitation cloud open source, et OpenStack est l’une des solutions sérieuses, utilisée par de nombreuses institutions et entreprises. Le Cern fait partie des utilisateurs et Red Hat est un fervent partisan d’OpenStack.

Soyez conscient: Même après ce tutoriel « repassé », vous serez accueilli avec des erreurs après avoir tout configuré, et vous devrez faire plus de recherches pour que votre OpenStack fonctionne correctement. Je vais écrire sur certains des problèmes dans quelques guides plus rapides.

OpenStack a également la réputation d’être compliqué à installer et à entretenir et peu stable. J’ai beaucoup lu sur le sujet OpenStack, j’ai parcouru beaucoup de documentation et c’est le résultat. Cela couvrira l’installation manuelle de la libération du train, et cette vaste série couvrira tous les composants de l’installation minimale d’OpenStack (ne laissez pas ce minimum vous tromper, il y a beaucoup à faire).

Il existe quelques différences entre la documentation officielle d’OpenStack et le déploiement lui-même, donc ce tutoriel devrait également vous aider à économiser d’innombrables heures de recherche d’erreurs et de déchiffrement des erreurs.La procédure est fastidieuse, mais je la recommande vivement, car à la fin de celle-ci, vous aurez une bonne compréhension des principes de base d’OpenStack.

En savoir plus sur le sujet la prochaine fois, mettons-nous au travail.

Il y a une courbe d’apprentissage, et d’après ce que j’ai lu, je crois qu’OpenStack est en ce moment une solution stable pour vos besoins en cloud.

Mais, nous verrons en cours de route, plongeons dedans.

Prérequis

J’utiliserai CentOS 7 pour mes installations (v.1908). Je vais créer mon laboratoire dans VMware Fusion / Workstation. L’installation initiale de CentOS est minimale sans interface graphique ni aucun ajout.

Toutes mes machines virtuelles auront des cœurs 4CPU et 8 Go de RAM avec un minimum de disque dur de 120 Go.Vous pouvez trouver les exigences minimales ici – https://docs.openstack.org/install-guide/overview.html

Prenez note des exigences supplémentaires des composants réseau et lecteur et ajoutez-les en conséquence à votre LABORATOIRE.

Mon LABORATOIRE a accès à Internet.

Je suivrai la documentation d’OpenStack en cours de route – https://docs.openstack.org/install-guide/common/conventions.html

Je vais installer la génération de train, qui est la version actuelle. Je vais commencer par le nœud de contrôleur 1 et le nœud de calcul 1.

Le réseau du fournisseur sera le suivant (vous avez besoin d’un accès Internet pour cette configuration) :

10.0.0.1/24 – passerelle

10.0.0.11/24 – Nœud contrôleur 1

10.0.0.31/24 – Nœud de calcul 1

10.0.0.41/24 – Nœud de stockage de blocs 1

10.0.0.51/24 – Nœud de stockage d’objets 1

10.0.0.52 /24 – Nœud de stockage d’objets 2

Je créerai également plus tard un réseau dans la plage 203.0.113.0/24, qui sera réseau de gestion.

Voici également les noms et adresses IP des machines (vous en aurez également besoin dans le fichier hosts):

10.0.0.11 controller

10.0.0.31 compute1

10.0.0.41 block1

10.0.0.51 object1

10.0.0.52 object2

Changer le nom d’hôte de la machine

Pour chaque machine du laboratoire, changez le nom d’hôte. Je vais changer mes noms d’hôte pour les noms que j’ai spécifiés juste au-dessus de cela.

La commande est ci-dessous, le contrôleur est le nom de l’une des machines, changez-le à ce que vous jugez bon.

sudo hostnamectl set-hostname controller

Voici ce que le changement prend en charge après le redémarrage.

J’ai nommé mes machines – controller, compute1, block1, object1, object2.

Configurer la résolution du nom

Modifiez votre interface réseau située dans /etc/sysconfig/network-scripts

Dans mon cas, j’ai l’interface ifcfg-ens33

sudo vi /etc/sysconfig/network-scripts/ifcfg-ens33

J’ai édité les lignes suivantes (exemple de machine de contrôleur):

BOOTPROTO=noneIPADDR=10.0.0.11PREFIX=24GATEWAY=10.0.0.1DNS1=10.0.0.1DNS2=8.8.8.8ONBOOT=yesIPV6INIT=no

Voici à quoi cela ressemble

Redémarrez la machine après avoir défini la configuration ip. Répétez ces étapes pour toutes les machines du laboratoire (définissez bien sûr une adresse IP différente pour chacune).

Mise à jour de l’installation de CentOS

Avant d’aller plus loin, nous mettrons à jour nos installations de CentOS. De cette façon, nous confirmerons également notre connectivité Internet.

sudo yum update -y

Edit Hosts file

Encore une fois, nous devons le faire sur chaque machine. Nous allons éditer le fichier hosts, afin que les machines puissent se voir par leur nom.

sudo vi /etc/hosts/

Voici ce que nous devons entrer

10.0.0.11 controller10.0.0.31 compute110.0.0.41 block110.0.0.51 object110.0.0.52 object2

Voici à quoi ressemble mon fichier

Si nous avons tout fait correctement, nous devrions maintenant pouvoir effectuer un ping du contrôleur vers compute1 et vice versa par le nom. (Assurez-vous que votre ping est disponible via le pare-feu)

Fonctionne.Entrez ces valeurs dans chaque fichier hosts sur chaque machine et assurez-vous que vous pouvez envoyer un ping à chaque machine et tester à partir de chaque machine.

Setup service NTP

Une mesure précise du temps est importante, nous allons donc définir le serveur de temps et y attacher des clients. Le serveur de temps sera notre serveur contrôleur et client toutes les autres machines.

Configuration du serveur NTP

Nous le ferons sur notre serveur contrôleur.

sudo yum install chrony -y

Activer et démarrer le service en exécutant

sudo systemctl start chronydsudo systemctl enable chronyd

Vous pouvez également vérifier l’état du service en exécutant

systemctl status chronyd

Ensuite, nous allons éditer /etc/chrony.fichier de configuration

sudo vi /etc/chrony.conf

Pour ce tutoriel, je laisserai les serveurs centos NTP par défaut. Sinon, si vous souhaitez éditer des serveurs NTP, vous pouvez, en ajoutant la commande ci-dessous (Remplacez NTP_SERVER par le nom du serveur NTP)

server NTP_SERVER iburst

Nous devrons également activer l’accès pour nos clients NTP à partir du réseau local en décommentant et en modifiant la ligne suivante

allow 10.0.0.0/24

Voici ma configuration. La partie verte est l’endroit où vous entrerez dans vos serveurs NTP, et la partie rouge est activée depuis notre réseau local pour la synchronisation temporelle.

Redémarrez le serveur ou le service chrony en tapant

sudo systemctl restart chronyd

Nous vérifierons si notre serveur synchronise l’heure en tapant

p>

chronyc sources

Le service fonctionne pour moi.

Nous l’activerons également via le pare-feu

sudo firewall-cmd --permanent --add-service=ntpsudo firewall-cmd --reload

Configuration des clients NTP

Ces étapes doivent être effectuées sur le reste des machines.

Encore une fois, nous devons installer chrony

sudo yum install chrony

Activer et démarrer le service NTP

sudo systemctl start chronydsudo systemctl enable chronyd

Après cela, nous devons à nouveau éditer /etc/chrony.conf

sudo vi /etc/chrony.conf

Vous devrez supprimer tous les serveurs NTP et entrer

server controller iburst

Laissez tout tel quel et fermez le fichier. Voici à quoi ressemble la mienne.

Encore une fois, redémarrez le service NTP

sudo systemctl restart chronyd

Et permet de vérifier si cela fonctionne

chronyc sources

Cela fonctionne, le client communique avec le serveur NTP.

Et, sur le serveur NTP si nous entrons la commande

chronyc clients

Nous verrons que compute1 est un client NTP

div>

Répétez l’étape sur le reste des machines.

Paquets OpenStack

Ces étapes doivent être effectuées sur tous les nœuds. Si vous n’avez pas mis à jour votre installation CentOS, et désactivez également le dépôt EPEL.

!!!///UNIQUEMENT POUR LES INSTALLATIONS DE RED HAT, les CENTOS IGNORENT CETTE

subscription-manager repos --enable=rhel-7-server-optional-rpms \ --enable=rhel-7-server-extras-rpms --enable=rhel-7-server-rh-common-rpms

Exécutez la commande suivante (nous installons la version du train)

sudo yum install centos-release-openstack-train

La commande suivante que nous allons exécuter est

sudo yum upgrade

Redémarrez après, et sélectionnez nouveau noyau pour l’activer.

La commande suivante sera

sudo yum install python-openstackclient

Et enfin, nous devons intégrer notre installation OpenStack dans SELinux

sudo yum install openstack-selinux

Base de données SQL

La base de données sera installée sur le nœud du contrôleur.Nous allons installer MariaDB.

sudo yum install mariadb mariadb-server python2-PyMySQL

Une fois l’installation terminée, nous devrons éditer un openstack.conf situé dans /etc/mon.cnf.d

sudo vi /etc/my.cnf.d/openstack.conf

Nous allons créer une section mysqld avec les informations suivantes (assurez-vous que l’adresse de liaison est l’adresse de votre contrôleur)

bind-address = 10.0.0.11default-storage-engine = innodbinnodb_file_per_table = onmax_connections = 4096collation-server = utf8_general_cicharacter-set-server = utf8

Voici à quoi cela ressemble dans mon cas

Activer et démarrer MariaDB

sudo systemctl enable mariadb.servicesudo systemctl start mariadb.service

Nous ajouterons également une exception de pare-feu

sudo firewall-cmd --permanent --add-service=mysqlsudo firewall-cmd --reload

Enfin, nous sécuriserons notre installation et définirons le mot de passe pour le sql root l’utilisateur

sudo mysql_secure_installation

File d’attente de messages

OpenStack utilise la file d’attente de messages pour coordonner les opérations et le statut entre les services. Il fonctionne généralement sur le contrôleur, nous l’installerons donc sur le contrôleur. Nous installerons RabbitMQ

Installation

sudo yum install rabbitmq-server

Démarrer et activer le service

sudo systemctl enable rabbitmq-server.servicesudo systemctl start rabbitmq-server.service

Ajoutez-y un utilisateur openstack. Remplacez RABBIT_PASS par votre mot de passe.

sudo rabbitmqctl add_user openstack RABBIT_PASS

Définir les autorisations

rabbitmqctl set_permissions openstack ".*" ".*" ".*"

Ce sont des paramètres de pare-feu pour RabbitMQ

sudo firewall-cmd --zone=public --permanent --add-port=4369/tcp --add-port=25672/tcp --add-port=5671-5672/tcp --add-port=15672/tcp --add-port=61613-61614/tcp --add-port=1883/tcp --add-port=8883/tcpsudo firewall-cmd --reload

Commande SELinux facultative

setsebool -P nis_enabled 1

Memcached

Le mécanisme d’authentification du service d’identité pour les services utilise Memcached pour mettre en cache les jetons. Le service memcached s’exécute généralement sur le nœud du contrôleur, je vais donc l’installer sur le nœud du contrôleur.

Installation

sudo yum install memcached python-memcached

Next, we will edit /etc/sysconfig/memcached

sudo vi /etc/sysconfig/memcached

controller should be added to OPTIONS line, like this

OPTIONS="-l 127.0.0.1,::1,controller"

At last, we will enable and start service

sudo systemctl enable memcached.servicesudo systemctl start memcached.service

Optional firewall settings for memcached

sudo firewall-cmd --new-zone=memcached --permanentsudo firewall-cmd --zone=memcached --add-port=11211/udp --permanentsudo firewall-cmd --zone=memcached --add-port=11211/tcp --permanentsudo firewall-cmd --zone=memcached --add-source=10.0.0.0/24 --permanentsudo firewall-cmd --reload

Etcd

Short explanation from docs.openstack.les services org-OpenStack peuvent utiliser Etcd, un magasin de clés-valeurs fiable et distribué pour le verrouillage de clés distribué, le stockage de la configuration, le suivi de la vie du service et d’autres scénarios.

Etcd doit être installé sur le nœud du contrôleur.

Installation

sudo yum install etcd

Ensuite, nous allons éditer /etc/etcd/etcd.conf

sudo vi /etc/etcd/etcd.conf

Vous devez éditer un fichier comme celui-ci et modifier les valeurs ci-dessous pour correspondre à l’adresse IP ou au nom de votre contrôleur.

#ETCD_DATA_DIR="/var/lib/etcd/default.etcd"ETCD_LISTEN_PEER_URLS="http://10.0.0.11:2380"ETCD_LISTEN_CLIENT_URLS="http://10.0.0.11:2379"ETCD_NAME="controller"#ETCD_INITIAL_ADVERTISE_PEER_URLS="http://10.0.0.11:2380"ETCD_ADVERTISE_CLIENT_URLS="http://10.0.0.11:2379"ETCD_INITIAL_CLUSTER="controller=http://10.0.0.11:2380"ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster-01"ETCD_INITIAL_CLUSTER_STATE="new"

Voici à quoi ressemble mon fichier

Activer et démarrer le service

sudo systemctl enable etcdsudo systemctl start etcd

Paramètres de pare-feu supplémentaires

sudo firewall-cmd --add-port={2379,2380}/tcp --permanentsudo firewall-cmd --reload

Donc, nous avons plus ou moins « terminé » avec la partie initiale, nous allons maintenant effectuer un déploiement minimal pour Train.

Déploiement minimal pour Train

Ok, nous avons donc réussi jusqu’à présent. Nous allons maintenant effectuer un déploiement de service minimal pour le train. Plus de détails peuvent être trouvés ici – https://docs.openstack.org/install-guide/openstack-services.html

Les services doivent être installés dans l’ordre spécifié, comme illustré ci-dessous

Depuis ce tutoriel ça va déjà un peu long, je vais le terminer ici, et couvrir chacun des services ci-dessus dans un tutoriel séparé.

La chose importante est de faire tous les services dans l’ordre exact tels qu’ils sont ci-dessous.

Voici les liens

  1. Service d’identité – installation keystone pour Train

2. Service d’image – installation de coup d’œil pour le train

3. Service de placement – installation de placement pour train

4. Service de calcul – installation nova pour le train

5. Service de mise en réseau – installation de neutrons pour Train

Nous vous conseillons d’installer également les composants suivants après avoir installé les services de déploiement minimal :

6. Tableau de bord – installation horizon pour Train

7. Service de stockage de blocs – installation de parpaings pour train

8. Object Storage service – swift installation for Train

Additional links for after installation for errors you may encounter:

Disclaimer

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.