Bienvenue à tous voici le premier article de la série dédiée à l’installation d’OpenStack.
Pour commencer je vais rapidement rappeler ce qu’est OpenStack.
OpenStack est un projet libre initié en 2010 par la NASA et la société Rackspace qui a pour but de permettre a toute organisation qui le souhaite les moyens d’offrir des services de type cloud computing sur du matériel standard.
Une infrastructure OpenStack est composée d’un ensemble de logiciels open-source qui vont permettrent le déploiement d’infrastructure de type IaaS (Infrastructure as a Service).
Cette conception modulaire permet de gérer l’ensemble des ressources nécéssaires au fonctionnement de la plateforme.
Enfin ce projet est soutenue par la Fondation OpenStack qui a pour but de promouvoir OpenStack mais aussi de fédérer les développeurs et la communauté qui s’est construite autour de ce projet.
Dans ce premier article nous allons voir comment mettre en place les pré-requis nécessaires au bon déploiement d’OpenStack.
Présentation de l’infrastructure déployée
Pour commencer je vais vous détailler l’ensemble des serveurs nécessaires pour faire fonctionner votre plateforme OpenStack.
Les services indispensables
Une plateforme OpenStack se compose de plusieurs composants obligatoires, en voici une liste exhaustive:
[wpsm_comparison_table id= »1″]
Configuration réseau des serveurs
La configuration détaillée ci-dessous est déployée sous Ubuntu 16.04 64 Bits.
Configuration des interfaces réseaux
La configuration du réseau s’effectue dans le fichier /etc/network/interfaces. Pour notre plateforme nous allons fixer les adresses IP de nos serveurs.
Chaque serveurs va avoir deux cartes réseaux connectées sur un réseau différents.
Un premier réseau dit d’administration et de gestion: C’est le réseau qui sera utilisé pour que les serveurs communiquent entre eux ainsi que pour les administrés.
Un deuxième réseau pour les instances virtuelles: C’est le réseau qui sera utilisé pour déployer les machines virtuelles et les conteneurs.
Pour configurer vos cartes réseaux procéder comme ceci:
sudo vi /etc/network/interfaces
Editer le fichier de la manière suivante: (/!\ adapter les valeurs à votre environnement)
auto INTERFACE_NAME
iface INTERFACE_NAME inet static
address IP_ADDRESS
netmask NETMASK
gateway GATEWAY
auto INTERFACE_NAME
iface INTERFACE_NAME inet manual
up ip link set dev $IFACE up
down ip link set dev $IFACE down
Configuration de la résolution de noms
Pour configurer le/les serveurs DNS:
sudo vi /etc/resolconf/resolvconf.d/base
Editer le fichier de la manière suivante: (/!\ adapter les valeurs à votre environnement)
nameserver IP_NAMESERVER1
nameserver IP_NAMESERVER2
search DOMAIN.TLD
Puis redémarrer les serveurs
Configuration du service NTP
Pour la configuration de ce service, deux types configurations sont à réaliser. Une première sur le serveur contrôleur et une deuxième sur tout les autres serveurs.
Serveur contrôleur
On commence par installer le paquet du serveur NTP
sudo apt install chrony
Dans le fichier /etc/chrony/chrony.conf, supprimer les lignes commençant par « server NTP_SERVER iburst » et ajouter les lignes suivantes
server 0.fr.pool.ntp.org iburst
server 1.fr.pool.ntp.org iburst
server 2.fr.pool.ntp.org iburst
server 3.fr.pool.ntp.org iburst
Puis autoriser votre sous-réseau interroger votre serveur en ajoutant :
allow NETWORK_IP/NETMASK
Redémarrer le service :
sudo service chrony restart
On vérifie que tout fonctionne avec la commande
chronyc sources
Autres serveurs
sudo apt install chrony
Dans le fichier /etc/chrony/chrony.conf, supprimer les lignes commençant par « server NTP_SERVER iburst » et ajouter la ligne suivante:
server CONTROLLER_IP iburst
Redémarrer le service :
sudo service chrony restart
On vérifie que tout fonctionne avec la commande
chronyc sources
Ajout de dépôts pour les paquets OpenStack Ocata
La mise en place des dépôts doit ce faire sur l’ensemble des serveurs de l’infrastructure avec le même niveau de version.
On va vérifie tout d’abords que le paquet Ubuntu de gestion simplifiée des dépôts est installé:
apt install software-properties-common
Puis on ajoute le dépôt OpenStack Ocata sur l’ensemble des nœuds de la plateforme:
add-apt-repository cloud-archive:ocata
Il faut maintenant mettre à jours le cache des dépôts et les serveurs:
apt update && apt dist-upgrade
Et enfin on déploie le client OpenStack:
apt install python-openstackclient
Mise en place de la base de donnée SQL
Le service de base de donnée doit être installé sur le nœud contrôleur de votre infrastructure.
On utilise la version de MariaDB disponible dans les dépôts officiel Ubuntu.
apt install mariadb-server python-pymysql
Puis on créer le fichier de configuration pour le déploiement d’OpenStack:
vi /etc/mysql/mariadb.conf.d/99-openstack.cnf
Puis copier le contenu suivant dans le fichier:
[mysqld]
bind-address = 10.0.0.11
default-storage-engine = innodb
innodb_file_per_table = on
max_connections = 4096
collation-server = utf8_general_ci
character-set-server = utf8
Redémarrer votre service de base de donnée
service mysql restart
Puis initialisez votre instance:
mysq_secure_installation
Mise en place du service RabbitMQ
Le service RabbitMQ est un service de queue de messagerie qui permet la transmission de messages entre les différents composants d’OpenStack il est donc l’une des couche fondamentale de votre infrastructure.
On commence par installer le serveur RabbitMQ depuis les dépôts Ubuntu:
apt install rabbitmq-server
On créer ensuite l’utilisateur « openstack » dans RabbitMQ
rabbitmqctl add_user openstack MOT_DE_PASSE
Puis on donne les droits en lecture et écriture à ce même utilisateur
rabbitmqctl set_permissions openstack ".*" ".*" ".*"
Mise en place de Memcache
Pour finir la mise en place de l’environnement de base nécessaire a OpenStack il reste a mettre en place un service de cache en mémoire, c’est a ce moment qu’intervient Memcached.
Ce service n’est déployer que sur le serveur contrôleur.
On comment par l’installer depuis les dépôt Ubuntu
apt install memcached python-memcache
Puis éditez le fichier de configuration de memcached et remplacer la ligne suivante:
-l 127.0.0.1
par
-l IP_ADRESS
La configuration configuration de l’ensemble des pré-requis nécessaires au déploiement d’OpenStack est terminé. Je vous invite a suivre la suite du déploiement d’OpenStack sur cet article « Mettre en place Keystone dans sa plateforme OpenStack » qui traite de la mise en place de « Keystone » le service d’authentification utilisé par OpenStack.