OpenStack est une plate-forme de cloud computing open source, fournit une solution pour l'infrastructure en tant que service. OpenStack se compose de plusieurs composants assemblés pour fournir IaaS, les composants sont répertoriés ci-dessous avec son utilisation.
Composants :
Composant | Nom | Utiliser |
---|---|---|
Calculer | (Nouvelle) | Gère les machines virtuelles |
Stockage d'objets | (Rapide) | Gère le stockage dans le cloud |
Bloquer le stockage | (Cendre) | Gère le stockage pour calculer l'instance |
Mise en réseau | (Neutrons) | Gère le réseau et les adresses IP |
Tableau de bord | (Horizon) | Fournir une interface Web graphique pour gérer les ressources |
Service d'identité | (clé de voûte) | Gère le système d'authentification sur le cloud |
Service d'imagerie | (Regard) | Fournit des images de disque et de serveur (modèle) |
Télémétrie | (Ceilomètre) | Système de facturation |
Orchestration | (Chaleur) | Fournit une fonction d'orchestration |
Conception des infrastructures :
En ce qui concerne l'infrastructure, nous allons utiliser le réseau OpenStack (neutron), un total de trois instances Ubuntu seront utilisées ici, agiront en tant que contrôleur, réseau et nœud de calcul.
OpenStack recommande les configurations minimales ci-dessous pour chaque nœud, avec un système d'exploitation hôte 64 bits.
• Nœud de contrôleur :1 processeur, 2 Go de mémoire et 5 Go de stockage
• Nœud de calcul :1 processeur, 2 Go de mémoire et 10 Go de stockage
Voici la configuration réseau de chaque nœud.
Rôle | Carte nord-ouest 1 | Carte NW 2 |
---|---|---|
Nœud de contrôleur HostName =controller.itzgeek.local (controller) | 192.168.12.21 / 24, GW=192.168.12.2 (Réseau de gestion) | 192.168.0.21 / 24 GW=192.168.0.1 (Réseau public – DHCP activé) |
Nœud de calcul HostName =compute.itzgeek.local (compute) | 192.168.12.22 / 24 GW=192.168.12.2 (Réseau de gestion) | 192.168.0.22 / 24 GW=192.168.0.1 (Réseau public - DHCP activé) |
* Gestion sur 192.168.12.0/24 avec passerelle 192.168.12.1
Ce réseau nécessite une passerelle pour fournir un accès Internet à tous les nœuds à des fins administratives telles que l'installation de packages, les mises à jour de sécurité, DNS et NTP.
* Public sur 192.168.0.0/24 avec passerelle 192.168.0.1
Ce réseau nécessite une passerelle pour fournir un accès Internet aux instances de votre environnement OpenStack.
Ajoutez une entrée d'hôte, afin que les nœuds puissent utiliser le nom d'hôte pour communiquer au lieu de l'adresse IP. Placez-le sur tous les nœuds.
# nano /etc/hosts # controller 192.168.12.21 controller.itzgeek.local controller # compute 192.168.12.22 compute.itzgeek.local compute
Une fois que vous avez terminé de configurer l'adresse IP, envoyez un ping entre les nœuds pour vérifier la connectivité.
Serveur NTP :
Installez et configurez chrony (NTP) sur le nœud de contrôleur afin que tous les autres nœuds puissent synchroniser l'heure avec le nœud de contrôleur.
# apt-get install ntp # service ntp restart
Configuration client NTP
Installez le package NTP sur les nœuds de calcul et tous les nœuds que vous ajouterez à l'avenir.
# apt-get install ntp
Modifiez le fichier de configuration ci-dessous.
# nano /etc/ntp.conf
Supprimez les autres serveurs ntp de ce fichier ou commentez simplement les lignes qui commencent par le mot "serveur". Ajoutez l'entrée ci-dessous pour synchroniser nos nœuds avec le nœud du contrôleur.
server controller
Redémarrez le service NTP.
# service ntp restart
Packages OpenStack :
Installez le porte-clés et le référentiel de l'archive Ubuntu Cloud.
# apt-get install software-properties-common # add-apt-repository cloud-archive:liberty
Mettez à niveau votre système.
# apt-get update && apt-get dist-upgrade
Installez le client Python OpenStack.
# apt-get install python-openstackclient
Effectuez les deux étapes ci-dessus sur tous les nœuds.
Installer la base de données MySQL :
Les composants OpenStack utilisent la base de données MySQL pour stocker des informations, installez donc MySQL sur le nœud de contrôleur.
# apt-get install mariadb-server python-pymysql
Le programme d'installation appelle un tui de ligne de commande pour définir le mot de passe root MySQL.
Créez et modifiez le fichier /etc/mysql/conf.d/mysqld_openstack.cnf fichier
# nano /etc/mysql/conf.d/mysqld_openstack.cnf
Ajoutez les valeurs suivantes et assurez-vous que la valeur bind-address est définie sur l'adresse IP de gestion du nœud de contrôleur pour permettre à un autre nœud d'accéder à l'instance MySQL.
[mysqld] ## Set to Management IP bind-address = 192.168.12.21 default-storage-engine = innodb innodb_file_per_table collation-server = utf8_general_ci init-connect = 'SET NAMES utf8' character-set-server = utf8
Redémarrez MySQL.
# service mysql restart
Installer la base de données NoSQL (pour le service de télémétrie) :
Le service de télémétrie utilise une base de données NoSQL pour stocker les informations. La base de données s'exécute généralement sur le nœud du contrôleur. Ici, nous allons utiliser MongoDB.
L'installation du serveur de base de données NoSQL n'est nécessaire que lors de l'installation du service de télémétrie. Sinon, vous pouvez ignorer ceci.
Installez MongoDB et le package.
# apt-get install mongodb-server mongodb-clients python-pymongo
Modifiez le fichier /etc/mongodb.conf fichier.
# vi /etc/mongodb.conf
Ajoutez les valeurs suivantes et assurez-vous que la valeur bind_ip est définie sur l'adresse IP de gestion du nœud de contrôleur pour permettre à un autre nœud d'accéder à l'instance MySQL. Définissez également smallfiles =true .
# Management interface IP address of the controller node bind_ip = 192.168.12.21 smallfiles = true
Arrêtez et démarrez le service MongoDB.
# service mongodb stop # rm -rf /var/lib/mongodb/journal/prealloc.* # service mongodb start
Installez RabbitMQ :
RabbitMQ est utilisé par OpenStack pour coordonner les opérations et les informations d'état entre les services. Installez-le sur le nœud du contrôleur.
# apt-get install rabbitmq-server
Ajouter un utilisateur openstack.
# rabbitmqctl add_user openstack password
* Remplacez le mot de passe par votre propre mot de passe.
Autoriser l'utilisateur d'openstack à lire, écrire et accéder à la configuration.
# rabbitmqctl set_permissions openstack ".*" ".*" ".*"
Ensuite, il faut configurer le service KeyStone (identité OpenStack) .