Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
openstack [Le 11/09/2022, 12:14] moths-art Suppression des espaces en fin de ligne (détecté et corrigé via le bot wiki-corrector (https://forum.ubuntu-fr.org/viewtopic.php?id=2067892) |
openstack [Le 22/05/2023, 19:03] (Version actuelle) lyondif02 [Pré-requis] typo. +reformulation mineure |
||
---|---|---|---|
Ligne 4: | Ligne 4: | ||
====== OpenStack ====== | ====== OpenStack ====== | ||
- | OpenStack est un logiciel libre ((license Apache 2.0)) qui permet la construction de [[:cloud]] privé et public. OpenStack est aussi une communauté et un projet en plus d'un logiciel qui a pour but d'aider les organisations à mettre en oeuvre un système de serveur et de stockage virtuel.\\ | + | OpenStack est un logiciel libre((license Apache 2.0)) qui permet la construction de [[:cloud]] privé et public. C’est aussi le nom d’une communauté et d’un projet qui ont pour but d’aider les organisations à mettre en œuvre un système de serveur et de stockage virtuel. |
- | OpenStack est composé d'une série de logiciels et de projets au code source libre qui sont maintenus par la communauté incluant: OpenStack Compute (nommé Nova), OpenStack Object Storage (nommé Swift), et OpenStack Image Service (nommé Glance).\\ | + | |
- | Ce document présente l'installation des composants d'identité, d'images et virtualisation sur une seule machine.\\ | + | OpenStack est composé d’une série de logiciels et de projets au code source libre qui sont maintenus par la communauté. Il comprend notamment les composants OpenStack Compute, nommé Nova, OpenStack Object Storage, nommé Swift, et OpenStack Image Service, nommé Glance. |
- | Il s'agit plutôt d'une configuration de développement mais néanmoins fonctionnelle. Les services réseau avancé et stockage que sont respectivement Quantum et Swift ne seront pas abordés dans ce document. | + | |
+ | Ce document présente l’installation des composants d’identité, d’images et de virtualisation, sur une seule machine. Cela correspond davantage à une configuration de développement. Elle est néanmoins fonctionnelle. Les services réseau avancé, nommé Neutron (ex-Quantum), et stockage objet, nommé Swift, ne sont pas abordés ici. | ||
===== Pré-requis ===== | ===== Pré-requis ===== | ||
- | + | ||
+ | Dispositions générales : | ||
* Disposer des [[:sudo|droits d'administration]]. | * Disposer des [[:sudo|droits d'administration]]. | ||
- | * Disposer d'une connexion à Internet configurée et activée. | + | * Disposer d’une connexion à Internet configurée et activée. |
- | * Avoir les [[:dépôts]] d'activés | + | * Avoir activé les [[:dépôts]] logiciels. |
- | * Un processeur supportant la virtualisation matérielle ([[:kvm#mise_en_place|test sur la page KVM]]) | + | * Disposer d’un processeur supportant la virtualisation matérielle ([[:kvm#mise_en_place|test sur la page KVM]]). |
- | * Disposer d'un disque dur ou d'une partition non formatée pour [[:LVM]] | + | * Disposer d’un disque dur ou d’une partition non formatée pour [[:LVM]]. |
- | * Ne pas avoir peur de la ligne de [[:commande_shell|commande]] | + | * Ne pas avoir peur de la [[:commande_shell|ligne de commande]]. |
- | * Avoir [[:tutoriel:comment_installer_un_paquet|installé les paquets]]: | + | * [[:tutoriel:comment_installer_un_paquet|Avoir installé les paquets]] suivants : |
- | * **[[apt>kvm,libvirt-bin,virtinst]]**. | + | * **[[apt>kvm,libvirt-bin,virtinst]]** |
* **[[apt>mysql-server,python-mysqldb]]** | * **[[apt>mysql-server,python-mysqldb]]** | ||
- | * **[[apt>bridge-utils|bridge-utils]]** | + | * **[[apt>bridge-utils|bridge-utils]]**. |
- | * Il est nécessaire de configurer le réseau en IP Fixe. Supprimez les paquets Network-Manager ou Wicd et resolvconf. | + | * Avoir configuré le réseau avec un adressage IP statique. Supprimer les paquets Network-Manager ou Wicd et resolvconf. |
- | Tous les services OpenStack seront installés sur la même machine.\\ | + | Notes particulières : |
- | La configuration abordée suppose l'utilisation de 2 interfaces réseau.\\ | + | * Tous les services OpenStack seront installés sur la même machine ; |
+ | * La configuration abordée considère l’utilisation de 2 interfaces réseau. | ||
===== Préparation du système ===== | ===== Préparation du système ===== | ||
Ligne 141: | Ligne 144: | ||
=== Gestion des utilisateurs === | === Gestion des utilisateurs === | ||
- | La gestion des utilisateurs s'articule autour de 3 objets: | + | La gestion des utilisateurs s’articule autour de 3 objets : |
- | * l'objet //[[#Création_des_utilisateurs|User]]// représentant l'utilisateur final. | + | * l’objet //[[#Création_des_utilisateurs|User]]// représentant l’utilisateur final ; |
- | * L'objet //[[#Création des Tenants|Tenant]]// que l'on peut représenter par un projet, une organisation au sein duquel les instances seront regroupées et administrées par les utilisateurs. | + | * l’objet //[[#Création des Tenants|Tenant]]// que l’on peut représenter par un projet ou une organisation au sein desquels les instances seront regroupées et administrées par les utilisateurs ; |
- | * L'objet //[[#Création des rôles|Role]]// qui définit le rôle de l'utilisateur sur un //Tenant//. Un utilisateur peut avoir un ou plusieurs rôles sur différents Tenants. | + | * l’objet //[[#Création des rôles|Role]]// qui définit le rôle de l’utilisateur sur un //Tenant//. Un utilisateur peut être associé à un ou plusieurs rôles sur différents Tenants. |
=== Gestion des services et points d'accès === | === Gestion des services et points d'accès === | ||
- | La gestion des différents services, comme Glance pour les images ou Swift pour le stockage.\\ | + | La gestion des différents services s’applique notamment aux : |
- | La définition des points d'accès a ces différents services, les url et ports pour y accéder\\ | + | * composant //Glance// pour les images, |
+ | * composant //Swift// pour le stockage objet. | ||
+ | |||
+ | La définition des points d’accès à ces différents services porte en l’occurrence sur : | ||
+ | * des adresses de type URL, | ||
+ | * des ports réseau. | ||
==== Préparation de la base de données Mysql ==== | ==== Préparation de la base de données Mysql ==== | ||
Ligne 164: | Ligne 172: | ||
==== Installation ==== | ==== Installation ==== | ||
- | [[:tutoriel:comment_installer_un_paquet|Installez les paquets]] **[[apt>keystone,python-keystone,python-keystoneclient,python-mysqldb]]** | + | [[:tutoriel:comment_installer_un_paquet|Installez les paquets]] **[[apt>keystone,python-keystone,python-keystoneclient,python-mysqldb]]**. |
- | Puis supprimer la base de donnée SQlite : | + | Puis supprimez la base de données SQLite : |
<code> | <code> | ||
rm /var/lib/keystone/keystone.db | rm /var/lib/keystone/keystone.db | ||
Ligne 172: | Ligne 180: | ||
==== Configuration ==== | ==== Configuration ==== | ||
- | [[:tutoriel:comment_modifier_un_fichier|Ouvrez avec les droits d'administration]] le fichier **/etc/keystone/keystone.conf** pour modifier les sections suivantes: | + | [[:tutoriel:comment_modifier_un_fichier|Ouvrez avec les droits d'administration]] le fichier **/etc/keystone/keystone.conf** pour modifier les sections suivantes : |
- | Remplacez ADMPASSWD par un mot de passe de votre choix et et SQLPASSWD par le mot de passe MySQL défini ci dessus | + | |
+ | Remplacez ADMPASSWD par un mot de passe de votre choix et SQLPASSWD par le mot de passe MySQL précédemment défini. | ||
<file> | <file> | ||
[DEFAULT] | [DEFAULT] | ||
Ligne 192: | Ligne 201: | ||
</file> | </file> | ||
- | Redémarrez keystone: | + | Redémarrez le service //keystone// : |
<code> | <code> | ||
sudo service keystone restart | sudo service keystone restart | ||
</code> | </code> | ||
- | Synchronisez la base de données: | + | Synchronisez la base de données : |
<code> | <code> | ||
sudo keystone-manage db_sync | sudo keystone-manage db_sync | ||
</code> | </code> | ||
- | et donnez les droits en lecture / écriture à keystone | + | et donnez les droits en lecture / écriture à l’utilisateur / au groupe //keystone// : |
<code> | <code> | ||
chown keystone:keystone /var/lib/keystone/keystone.db | chown keystone:keystone /var/lib/keystone/keystone.db | ||
</code> | </code> | ||
==== Création des utilisateurs ==== | ==== Création des utilisateurs ==== | ||
- | Chaque commande ci-dessous contient l'authentification définie dans le fichier **keystone.conf** et utilisée par le client python sous la forme ''%%--%%token admin_token <mot de passe d'administration> %%--%%endpoint url_du_service_keystone <adresse du serveur:port/directory/>''.\\ | + | Chaque commande ci-dessous contient l’authentification définie dans le fichier **keystone.conf** et utilisée par le client Python sous la forme suivante : |
+ | <code> | ||
+ | --token admin_token # mot de passe d'administration | ||
+ | --endpoint url_du_service_keystone # adresse du serveur:port/dossier/ | ||
+ | </code> | ||
=== Création du compte administrateur === | === Création du compte administrateur === | ||
+ | Commande à exécuter après adaptation : | ||
<code> | <code> | ||
keystone --token ADMPASSWD --endpoint http://192.168.1.250:35357/v2.0/ user-create --name=admin --pass=ADMPASSWD --email=admin@example.com | keystone --token ADMPASSWD --endpoint http://192.168.1.250:35357/v2.0/ user-create --name=admin --pass=ADMPASSWD --email=admin@example.com | ||
</code> | </code> | ||
- | Répondra quelque chose comme | + | Réponse obtenue de manière approximative : |
<code> | <code> | ||
+----------+-------------------------------------------------------------------------------------------------------------------------+ | +----------+-------------------------------------------------------------------------------------------------------------------------+ | ||
Ligne 231: | Ligne 242: | ||
=== Création du compte interne du service Glance == | === Création du compte interne du service Glance == | ||
+ | Commande à exécuter après adaptation : | ||
<code> | <code> | ||
keystone --token ADMPASSWD --endpoint http://192.168.1.250:35357/v2.0/ user-create --name=glance --pass=ADMPASSWD --email=glance@example.com | keystone --token ADMPASSWD --endpoint http://192.168.1.250:35357/v2.0/ user-create --name=glance --pass=ADMPASSWD --email=glance@example.com | ||
</code> | </code> | ||
- | Répondra | + | Réponse obtenue de manière approximative : |
<code> | <code> | ||
+----------+-------------------------------------------------------------------------------------------------------------------------+ | +----------+-------------------------------------------------------------------------------------------------------------------------+ | ||
Ligne 249: | Ligne 261: | ||
=== Création du compte interne du service Nova === | === Création du compte interne du service Nova === | ||
+ | Commande à exécuter après adaptation : | ||
<code> | <code> | ||
keystone --token ADMPASSWD --endpoint http://192.168.1.250:35357/v2.0/ user-create --name=nova --pass=ADMPASSWD --email=nova@example.com | keystone --token ADMPASSWD --endpoint http://192.168.1.250:35357/v2.0/ user-create --name=nova --pass=ADMPASSWD --email=nova@example.com | ||
</code> | </code> | ||
- | Répondra | + | Réponse obtenue de manière approximative : |
<code> | <code> | ||
+----------+-------------------------------------------------------------------------------------------------------------------------+ | +----------+-------------------------------------------------------------------------------------------------------------------------+ | ||
Ligne 269: | Ligne 281: | ||
==== Création des rôles ==== | ==== Création des rôles ==== | ||
- | Pour les rôles utilisateurs vous avez le choix entre : | + | Chaque utilisateur peut être associé à un des deux rôles suivants : |
- | - //[[#Role_admin|admin]]//: donne le droit de modifier la configuration des services (ex:allouer une plage d'adresse IP, un quota d'espace disque pour un projet etc...) | + | - //[[#Role_admin|admin]]// : ce rôle donne le droit de modifier la configuration des services. Exemples : allouer une plage d’adresses IP, définir un quota d’espace disque pour un projet, etc. |
- | - //[[#Role_Membre|Member]]//: permet de gérer le contenu du projet (création d'instances de machines, ajout d'un disque virtuel a l'une d'elles etc...) | + | - //[[#Role_Membre|Member]]// : ce rôle permet de gérer le contenu d’un projet. Exemples : créer une instance de machine, ajouter un disque virtuel à une machine, etc. |
- | Les rôles //[[#Role_KeystoneAdmin|KeystoneAdmin]]// et //[[#Role_KeystoneServiceAdmin|KeystoneServiceAdmin]]// sont des rôles internes __nécessaires__. | + | |
+ | Les rôles //[[#Role_KeystoneAdmin|KeystoneAdmin]]// et //[[#Role_KeystoneServiceAdmin|KeystoneServiceAdmin]]// sont des rôles internes et __nécessaires__. | ||
+ | |||
+ | Par la suite, les commandes proposées intègrent l’authentification et l’accès au service sur le même modèle que pour la création des utilisateurs supra. | ||
=== Rôle admin === | === Rôle admin === | ||
+ | Commande à exécuter de manière adaptée : | ||
<code> | <code> | ||
keystone --token ADMPASSWD --endpoint http://192.168.1.250:35357/v2.0/ role-create --name=admin | keystone --token ADMPASSWD --endpoint http://192.168.1.250:35357/v2.0/ role-create --name=admin | ||
</code> | </code> | ||
+ | Réponse obtenue de manière approximative : | ||
<code> | <code> | ||
+----------+----------------------------------+ | +----------+----------------------------------+ | ||
Ligne 288: | Ligne 305: | ||
=== Rôle Membre === | === Rôle Membre === | ||
+ | Commande à exécuter de manière adaptée : | ||
<code> | <code> | ||
keystone --token ADMPASSWD --endpoint http://192.168.1.250:35357/v2.0/ role-create --name=Member | keystone --token ADMPASSWD --endpoint http://192.168.1.250:35357/v2.0/ role-create --name=Member | ||
</code> | </code> | ||
+ | Réponse obtenue de manière approximative : | ||
<code> | <code> | ||
+----------+----------------------------------+ | +----------+----------------------------------+ | ||
Ligne 301: | Ligne 320: | ||
=== Rôle KeystoneAdmin === | === Rôle KeystoneAdmin === | ||
+ | Commande à exécuter de manière adaptée : | ||
<code> | <code> | ||
keystone --token ADMPASSWD --endpoint http://192.168.1.250:35357/v2.0/ role-create --name=KeystoneAdmin | keystone --token ADMPASSWD --endpoint http://192.168.1.250:35357/v2.0/ role-create --name=KeystoneAdmin | ||
</code> | </code> | ||
+ | Réponse obtenue de manière approximative : | ||
<code> | <code> | ||
+----------+----------------------------------+ | +----------+----------------------------------+ | ||
Ligne 314: | Ligne 335: | ||
=== Rôle KeystoneServiceAdmin === | === Rôle KeystoneServiceAdmin === | ||
+ | Commande à exécuter de manière adaptée : | ||
<code> | <code> | ||
keystone --token ADMPASSWD --endpoint http://192.168.1.250:35357/v2.0/ role-create --name=KeystoneServiceAdmin | keystone --token ADMPASSWD --endpoint http://192.168.1.250:35357/v2.0/ role-create --name=KeystoneServiceAdmin | ||
</code> | </code> | ||
+ | Réponse obtenue de manière approximative : | ||
<code> | <code> | ||
+----------+----------------------------------+ | +----------+----------------------------------+ | ||
Ligne 327: | Ligne 350: | ||
==== Création des Tenants ==== | ==== Création des Tenants ==== | ||
+ | Par la suite, les commandes proposées intègrent l’authentification et l’accès au service sur le même modèle que pour la création des utilisateurs supra. | ||
+ | |||
=== Tenant admin === | === Tenant admin === | ||
- | Le Tenant admin permet à ses membres d'administrer les services. | + | Le //Tenant admin// permet à ses membres d’administrer les services. |
+ | |||
+ | Commande à exécuter de manière adaptée : | ||
<code> | <code> | ||
keystone --token ADMPASSWD --endpoint http://192.168.1.250:35357/v2.0/ tenant-create --name=admin | keystone --token ADMPASSWD --endpoint http://192.168.1.250:35357/v2.0/ tenant-create --name=admin | ||
</code> | </code> | ||
+ | Réponse obtenue de manière approximative : | ||
<code> | <code> | ||
+-------------+----------------------------------+ | +-------------+----------------------------------+ | ||
Ligne 342: | Ligne 370: | ||
+-------------+----------------------------------+ | +-------------+----------------------------------+ | ||
</code> | </code> | ||
+ | |||
=== Tenant service === | === Tenant service === | ||
- | Le Tenant interne des services. | + | Le //Tenant service// permet à ses membres d’accéder au service. |
+ | |||
+ | Commande à exécuter de manière adaptée : | ||
<code> | <code> | ||
keystone --token ADMPASSWD --endpoint http://192.168.1.250:35357/v2.0/ tenant-create --name=service | keystone --token ADMPASSWD --endpoint http://192.168.1.250:35357/v2.0/ tenant-create --name=service | ||
</code> | </code> | ||
+ | Réponse obtenue de manière approximative : | ||
<code> | <code> | ||
+-------------+----------------------------------+ | +-------------+----------------------------------+ |