Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| openstack [Le 04/10/2013, 18:43] – [Configuration] 161.105.194.131 | openstack [Le 22/05/2023, 19:03] (Version actuelle) – [Pré-requis] typo. +reformulation mineure lyondif02 | ||
|---|---|---|---|
| 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 un logiciel libre((license Apache 2.0)) qui permet la construction de [[:cloud]] privé et public. |
| - | OpenStack est composé d'une série de logiciels et de projets au code source libre qui sont maintenu | + | |
| - | 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 |
| - | Il s'agit plutôt d'une configuration de développement | + | |
| + | Ce document présente l’installation des composants d’identité, d’images et de virtualisation, sur une seule machine. | ||
| ===== Pré-requis ===== | ===== Pré-requis ===== | ||
| - | + | ||
| + | Dispositions générales : | ||
| * Disposer des [[: | * Disposer des [[: | ||
| - | * Disposer d'une connexion à Internet configurée et activée. | + | * Disposer d’une connexion à Internet configurée et activée. |
| - | * Avoir les [[: | + | * Avoir activé |
| - | * Un processeur supportant la virtualisation matérielle ([[: | + | * Disposer d’un |
| - | * 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 [[: | + | * Ne pas avoir peur de la [[: |
| - | * Avoir [[: | + | * [[: |
| - | * **[[apt> | + | * **[[apt> |
| * **[[apt> | * **[[apt> | ||
| - | * **[[apt> | + | * **[[apt> |
| - | * Il est nécessaire de configurer | + | * Avoir configuré |
| - | Tous les services OpenStack seront installés sur la même machine.\\ | + | Notes particulières : |
| - | La configuration abordée | + | * Tous les services OpenStack seront installés sur la même machine ; |
| + | | ||
| ===== Préparation du système ===== | ===== Préparation du système ===== | ||
| Ligne 71: | Ligne 74: | ||
| </ | </ | ||
| + | <note tip> Assurez-vous d' | ||
| + | : | ||
| + | < | ||
| + | net.ipv4.ip_forward=1 | ||
| + | </ | ||
| + | puis lancez la commande : | ||
| + | < | ||
| + | </ | ||
| ==== Serveur NTP ==== | ==== Serveur NTP ==== | ||
| Ligne 82: | Ligne 93: | ||
| </ | </ | ||
| - | redémarrez le service | + | redémarrez le service |
| < | < | ||
| sudo service ntp restart | sudo service ntp restart | ||
| Ligne 133: | 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 // | + | * l’objet // |
| - | * L'objet // | + | * l’objet // |
| - | * L'objet // | + | * l’objet // |
| === Gestion des services et points d' | === Gestion des services et points d' | ||
| - | La gestion des différents services, comme Glance pour les images | + | La gestion des différents services |
| - | La définition des points d'accès | + | * composant //Glance// pour les images, |
| + | * composant //Swift// pour le stockage | ||
| + | |||
| + | La définition des points d’accès | ||
| + | * 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 152: | Ligne 168: | ||
| EOF | EOF | ||
| </ | </ | ||
| + | |||
| ==== Installation ==== | ==== Installation ==== | ||
| - | [[: | + | [[: |
| + | Puis supprimez la base de données SQLite : | ||
| + | < | ||
| + | rm / | ||
| + | </ | ||
| ==== Configuration ==== | ==== Configuration ==== | ||
| - | [[: | + | [[: |
| - | Remplacez ADMPASSWD par un mot de passe de votre choix et et SQLPASSWD par le mot de passe MySQL défini | + | |
| + | Remplacez ADMPASSWD par un mot de passe de votre choix et SQLPASSWD par le mot de passe MySQL précédemment | ||
| < | < | ||
| [DEFAULT] | [DEFAULT] | ||
| - | bind_host = 0.0.0.0 | + | bind_host = 0.0.0.0 |
| - | | + | public_port = 5000 |
| - | | + | admin_port = 35357 |
| # Mot de passe d' | # Mot de passe d' | ||
| - | admin_token = ADMPASSWD | + | admin_token = ADMPASSWD |
| - | | + | compute_port = 8774 |
| - | | + | verbose = True |
| - | | + | debug = True |
| - | | + | log_config = / |
| Ligne 179: | Ligne 201: | ||
| </ | </ | ||
| - | Redémarrez keystone: | + | Redémarrez |
| < | < | ||
| sudo service keystone restart | sudo service keystone restart | ||
| </ | </ | ||
| - | et synchronisez | + | Synchronisez |
| < | < | ||
| sudo keystone-manage db_sync | sudo keystone-manage db_sync | ||
| </ | </ | ||
| + | et donnez les droits en lecture / écriture à l’utilisateur / au groupe // | ||
| + | < | ||
| + | chown keystone: | ||
| + | </ | ||
| ==== 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 | + | Chaque commande ci-dessous contient l’authentification définie dans le fichier **keystone.conf** et utilisée par le client |
| + | < | ||
| + | | ||
| + | | ||
| + | </code> | ||
| === Création du compte administrateur === | === Création du compte administrateur === | ||
| + | Commande à exécuter après adaptation : | ||
| < | < | ||
| keystone --token ADMPASSWD --endpoint http:// | keystone --token ADMPASSWD --endpoint http:// | ||
| </ | </ | ||
| - | Répondra quelque chose comme | + | Réponse obtenue de manière approximative : |
| < | < | ||
| +----------+-------------------------------------------------------------------------------------------------------------------------+ | +----------+-------------------------------------------------------------------------------------------------------------------------+ | ||
| Ligne 213: | Ligne 242: | ||
| === Création du compte interne du service Glance == | === Création du compte interne du service Glance == | ||
| + | Commande à exécuter après adaptation : | ||
| < | < | ||
| keystone --token ADMPASSWD --endpoint http:// | keystone --token ADMPASSWD --endpoint http:// | ||
| </ | </ | ||
| - | Répondra | + | Réponse obtenue de manière approximative : |
| < | < | ||
| +----------+-------------------------------------------------------------------------------------------------------------------------+ | +----------+-------------------------------------------------------------------------------------------------------------------------+ | ||
| Ligne 231: | Ligne 261: | ||
| === Création du compte interne du service Nova === | === Création du compte interne du service Nova === | ||
| + | Commande à exécuter après adaptation : | ||
| < | < | ||
| keystone --token ADMPASSWD --endpoint http:// | keystone --token ADMPASSWD --endpoint http:// | ||
| </ | </ | ||
| - | Répondra | + | Réponse obtenue de manière approximative : |
| < | < | ||
| +----------+-------------------------------------------------------------------------------------------------------------------------+ | +----------+-------------------------------------------------------------------------------------------------------------------------+ | ||
| Ligne 251: | Ligne 281: | ||
| ==== Création des rôles ==== | ==== Création des rôles ==== | ||
| - | Pour les rôles | + | Chaque utilisateur peut être associé à un des deux rôles |
| - | - // | + | - // |
| - | - // | + | - // |
| - | Les rôles // | + | |
| + | Les rôles // | ||
| + | |||
| + | 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 : | ||
| < | < | ||
| keystone --token ADMPASSWD --endpoint http:// | keystone --token ADMPASSWD --endpoint http:// | ||
| </ | </ | ||
| + | Réponse obtenue de manière approximative : | ||
| < | < | ||
| +----------+----------------------------------+ | +----------+----------------------------------+ | ||
| Ligne 270: | Ligne 305: | ||
| === Rôle Membre === | === Rôle Membre === | ||
| + | Commande à exécuter de manière adaptée : | ||
| < | < | ||
| keystone --token ADMPASSWD --endpoint http:// | keystone --token ADMPASSWD --endpoint http:// | ||
| </ | </ | ||
| + | Réponse obtenue de manière approximative : | ||
| < | < | ||
| +----------+----------------------------------+ | +----------+----------------------------------+ | ||
| Ligne 283: | Ligne 320: | ||
| === Rôle KeystoneAdmin === | === Rôle KeystoneAdmin === | ||
| + | Commande à exécuter de manière adaptée : | ||
| < | < | ||
| keystone --token ADMPASSWD --endpoint http:// | keystone --token ADMPASSWD --endpoint http:// | ||
| </ | </ | ||
| + | Réponse obtenue de manière approximative : | ||
| < | < | ||
| +----------+----------------------------------+ | +----------+----------------------------------+ | ||
| Ligne 296: | Ligne 335: | ||
| === Rôle KeystoneServiceAdmin === | === Rôle KeystoneServiceAdmin === | ||
| + | Commande à exécuter de manière adaptée : | ||
| < | < | ||
| keystone --token ADMPASSWD --endpoint http:// | keystone --token ADMPASSWD --endpoint http:// | ||
| </ | </ | ||
| + | Réponse obtenue de manière approximative : | ||
| < | < | ||
| +----------+----------------------------------+ | +----------+----------------------------------+ | ||
| Ligne 309: | 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 : | ||
| < | < | ||
| keystone --token ADMPASSWD --endpoint http:// | keystone --token ADMPASSWD --endpoint http:// | ||
| </ | </ | ||
| + | Réponse obtenue de manière approximative : | ||
| < | < | ||
| +-------------+----------------------------------+ | +-------------+----------------------------------+ | ||
| Ligne 324: | Ligne 370: | ||
| +-------------+----------------------------------+ | +-------------+----------------------------------+ | ||
| </ | </ | ||
| + | |||
| === Tenant service === | === Tenant service === | ||
| - | Le Tenant | + | Le //Tenant |
| + | |||
| + | Commande à exécuter de manière adaptée : | ||
| < | < | ||
| keystone --token ADMPASSWD --endpoint http:// | keystone --token ADMPASSWD --endpoint http:// | ||
| </ | </ | ||
| + | Réponse obtenue de manière approximative : | ||
| < | < | ||
| +-------------+----------------------------------+ | +-------------+----------------------------------+ | ||
| Ligne 354: | Ligne 404: | ||
| Voici les commandes correspondantes : | Voici les commandes correspondantes : | ||
| < | < | ||
| - | keystone user-role-add --user `keystone user-list | awk '/ admin / { print $2 }'` --role `keystone role-list | awk '/ KeystoneAdmin / { print $2 }'` --tenant_id `keystone tenant-list | awk '/ admin / { print $2 }'` | + | keystone user-role-add --user-id `keystone user-list | awk '/ admin / { print $2 }'` --role-id `keystone role-list | awk '/ KeystoneAdmin / { print $2 }'` --tenant_id `keystone tenant-list | awk '/ admin / { print $2 }'` |
| - | keystone user-role-add --user `keystone user-list | awk '/ admin / { print $2 }'` --role `keystone role-list | awk '/ KeystoneServiceAdmin / { print $2 }'` --tenant_id `keystone tenant-list | awk '/ admin / { print $2 }'` | + | keystone user-role-add --user-id `keystone user-list | awk '/ admin / { print $2 }'` --role-id `keystone role-list | awk '/ KeystoneServiceAdmin / { print $2 }'` --tenant_id `keystone tenant-list | awk '/ admin / { print $2 }'` |
| - | keystone user-role-add --user `keystone user-list | awk '/ glance / { print $2 }'` --role `keystone role-list | awk '/ admin / { print $2 }'` --tenant_id `keystone tenant-list | awk '/ service / { print $2 }'` | + | keystone user-role-add --user-id `keystone user-list | awk '/ glance / { print $2 }'` --role-id `keystone role-list | awk '/ admin / { print $2 }'` --tenant_id `keystone tenant-list | awk '/ service / { print $2 }'` |
| - | keystone user-role-add --user `keystone user-list | awk '/ nova / { print $2 }'` --role `keystone role-list | awk '/ admin / { print $2 }'` --tenant_id `keystone tenant-list | awk '/ service / { print $2 }'` | + | keystone user-role-add --user-id `keystone user-list | awk '/ nova / { print $2 }'` --role-id `keystone role-list | awk '/ admin / { print $2 }'` --tenant_id `keystone tenant-list | awk '/ service / { print $2 }'` |
| </ | </ | ||
| Ligne 363: | Ligne 413: | ||
| ==== Création d'un utilisateur supplémentaire ==== | ==== Création d'un utilisateur supplémentaire ==== | ||
| Il s' | Il s' | ||
| - | Le rôle " | + | Le rôle " |
| + | L'User $USER (xavier ici) a un Role " | ||
| === User === | === User === | ||
| Ligne 445: | Ligne 496: | ||
| keystone --endpoint http:// | keystone --endpoint http:// | ||
| </ | </ | ||
| - | * La méthode user/ | + | * La méthode user/ |
| < | < | ||
| keystone --username admin --password ADMPASSWD --tenant_name admin --auth_url http:// | keystone --username admin --password ADMPASSWD --tenant_name admin --auth_url http:// | ||
| Ligne 499: | Ligne 550: | ||
| - | Il est bien sur possible d' | + | Il est bien sûr possible d' |
| - | Pour voir la liste des commandes disponibles et les détails utilisez : | + | Pour voir la liste des commandes disponibles et les détails utilisez : |
| < | < | ||
| keystone help [NOM DE LA COMMANDE] | keystone help [NOM DE LA COMMANDE] | ||
| Ligne 601: | Ligne 652: | ||
| admin_password = ADMPASSWD | admin_password = ADMPASSWD | ||
| </ | </ | ||
| - | et la section | + | et la section |
| < | < | ||
| [pipeline: | [pipeline: | ||
| Ligne 612: | Ligne 663: | ||
| sudo glance-manage version_control 0 | sudo glance-manage version_control 0 | ||
| sudo glance-manage db_sync | sudo glance-manage db_sync | ||
| + | </ | ||
| + | |||
| + | Si message d' | ||
| + | |||
| + | < | ||
| + | mysql -u root -p glance | ||
| + | alter table migrate_version convert to character set utf8 collate utf8_unicode_ci; | ||
| + | flush privileges; | ||
| + | quit | ||
| </ | </ | ||
| Ligne 674: | Ligne 734: | ||
| </ | </ | ||
| où: | où: | ||
| - | * <Image name> : Nom que l'on veut donner a l' | + | * <Image name> :Nom que l'on veut donner a l' |
| - | * is_public=true : L' | + | * is_public=true : |
| - | * < | + | * < |
| - | * < | + | * < |
| - | * %%< | + | * %%< |
| - | Pour voir la liste des commandes disponibles et les détails utilisez : | + | Pour voir la liste des commandes disponibles et les détails utilisez : |
| < | < | ||
| glance help [NOM DE LA COMMANDE] | glance help [NOM DE LA COMMANDE] | ||
| Ligne 706: | Ligne 766: | ||
| ==== Configuration ==== | ==== Configuration ==== | ||
| - | Création des services et points d' | + | Création des services et points d' |
| == Service compute == | == Service compute == | ||
| < | < | ||
| Ligne 777: | Ligne 837: | ||
| </ | </ | ||
| [[: | [[: | ||
| - | La configuration obtenue utilisera le mode Dhcp. La ligne " | + | La configuration obtenue utilisera le mode DHCP. La ligne " |
| - | Pour un mode Vlan, pour utiliser plusieurs serveurs ou d' | + | Pour un mode VLAN, pour utiliser plusieurs serveurs ou d' |
| < | < | ||
| Ligne 829: | Ligne 889: | ||
| --flat_injected=False | --flat_injected=False | ||
| --my_ip=192.168.1.250 | --my_ip=192.168.1.250 | ||
| - | --floating_range=192.168.1.0/ | + | --floating_range=192.168.1.0/ |
| --force_dhcp_release | --force_dhcp_release | ||
| --public_interface=br0 | --public_interface=br0 | ||
| Ligne 839: | Ligne 899: | ||
| </ | </ | ||
| - | toutes | + | Toutes |
| // | // | ||
| Ligne 871: | Ligne 931: | ||
| Vous pouvez maintenant vérifier que tous les services fonctionnent, | Vous pouvez maintenant vérifier que tous les services fonctionnent, | ||
| - | * un smiley, représenté par %%:-)%%, pour " | + | * un smiley, représenté par %%:-)%%, pour " |
| - | * un XXX : quelque chose n'as pas fonctionné, | + | * un XXX :quelque chose n'as pas fonctionné, |
| < | < | ||
| Ligne 921: | Ligne 981: | ||
| === Parefeu === | === Parefeu === | ||
| - | Par défaut, les règles de parefeu bloquent les paquets entrants sur l' | + | Par défaut, les règles de parefeu bloquent les paquets entrants sur l' |
| < | < | ||
| Ligne 973: | Ligne 1033: | ||
| </ | </ | ||
| - | Il faut définir les spécifications de la future VM, pour voir les possibilités, | + | Il faut définir les spécifications de la future VM, pour voir les possibilités, |
| < | < | ||
| Ligne 992: | Ligne 1052: | ||
| Pour la suite, il sera utilisé l'ID 1 correspondant à une machine disposant de 512 Mb de RAM, 1 CPU virtuel et aucun disque supplémentaire. | Pour la suite, il sera utilisé l'ID 1 correspondant à une machine disposant de 512 Mb de RAM, 1 CPU virtuel et aucun disque supplémentaire. | ||
| - | Lancez votre première VM avec la commande '' | + | Lancez votre première VM avec la commande '' |
| < | < | ||
| Ligne 1032: | Ligne 1092: | ||
| </ | </ | ||
| - | Un récapitulatif des propriétés de la machine s' | + | Un récapitulatif des propriétés de la machine s' |
| < | < | ||
| Ligne 1099: | Ligne 1159: | ||
| Vous pouvez maintenant vous reconnecter à la VM pour partitionner ce disque et l' | Vous pouvez maintenant vous reconnecter à la VM pour partitionner ce disque et l' | ||
| - | Connectez maintenant cette instance virtuelle | + | Connectez maintenant cette instance virtuelle |
| - | Il faut tout d' | + | Il faut tout d' |
| < | < | ||
| Ligne 1143: | Ligne 1203: | ||
| </ | </ | ||
| - | Il est bien sur possible d' | + | Il est bien sûr possible d' |
| - | Pour voir la liste des commandes disponibles et les détails utilisez : | + | Pour voir la liste des commandes disponibles et les détails utilisez : |
| < | < | ||
| nova help [NOM DE LA COMMANDE] | nova help [NOM DE LA COMMANDE] | ||
| Ligne 1176: | Ligne 1236: | ||
| <note important> | <note important> | ||
| - | Les identifiants de connexion de l' | + | Les identifiants de connexion de l' |
| //Username //: | //Username //: | ||
| - | Les comptes qui ont pour rôle " | + | Les comptes qui ont pour rôle " |
| === Accès Admin === | === Accès Admin === | ||
| - | Dans l' | + | Dans l' |
| - | * // | + | * // |
| - | * // | + | * // |
| - | * // | + | * // |
| - | * //Flavors// : La liste des types d' | + | * //Flavors// :La liste des types d' |
| - | * //Images// : Les images disques stockées par le service Glance. | + | * //Images// :Les images disques stockées par le service Glance. |
| - | * // | + | * // |
| - | * //Users// : La liste des utilisateurs enregistrés, | + | * //Users// :La liste des utilisateurs enregistrés, |
| - | * //Quotas// : les quotas définis sur les ressources des serveurs, pas de modification possible. | + | * //Quotas// :Les quotas définis sur les ressources des serveurs, pas de modification possible. |
| === Accès projets === | === Accès projets === | ||
| Un bouton permet de basculer entre les différents projets dont l' | Un bouton permet de basculer entre les différents projets dont l' | ||
| - | Puis viennent les menus : | + | Puis viennent les menus : |
| - | * // | + | * // |
| - | * //Instances & Volumes// : La liste des instances existantes et les possibilité | + | * //Instances & Volumes// :La liste des instances existantes et les possibilités |
| - | * //Images & Snapshots// : Liste des images autorisées pour le projet, sert a lancer de nouvelles instances. Regroupe aussi les instantanés disponibles, | + | * //Images & Snapshots// :Liste des images autorisées pour le projet, sert a lancer de nouvelles instances. Regroupe aussi les instantanés disponibles, |
| - | * //Acces & Security// : Les adresses IP disponibles pour connecter les instances au réseau public avec possibilité de création, les groupes de règles de parefeu | + | * //Acces & Security// :Les adresses IP disponibles pour connecter les instances au réseau public avec possibilité de création, les groupes de règles de pare-feu |
| ===== Créez vos propres images ===== | ===== Créez vos propres images ===== | ||
| - | L' | + | L' |
| Plusieurs grandes distributions ont été testées avec succès, dont Ubuntu et Debian, RedHat et Centos mais aussi Mandriva. D' | Plusieurs grandes distributions ont été testées avec succès, dont Ubuntu et Debian, RedHat et Centos mais aussi Mandriva. D' | ||
| - | Pour un système Linux, les pré-requis sont : un système à jour, Curl et un serveur SSH. Pour FreeBSD ou Windows, prévoyez l' | + | Pour un système Linux, les pré-requis sont :un système à jour, Curl et un serveur SSH. Pour FreeBSD ou Windows, prévoyez l' |
| Installez et configurez une VM avec [[:KVM]], installez les logiciels et services voulus et les comptes utilisateurs. Gardez à l' | Installez et configurez une VM avec [[:KVM]], installez les logiciels et services voulus et les comptes utilisateurs. Gardez à l' | ||
| - | Pour simplifier l' | + | Pour simplifier l' |
| Pour finir, pour les images Linux, [[: | Pour finir, pour les images Linux, [[: | ||
| Ligne 1230: | Ligne 1290: | ||
| Pour supprimer cette application, | Pour supprimer cette application, | ||
| - | Supprimez ensuite les bases de données keystone, glance et nova\\ | + | Supprimez ensuite les bases de données keystone, glance et nova |
| ===== Voir aussi ===== | ===== Voir aussi ===== | ||
| Ligne 1237: | Ligne 1297: | ||
| ---- | ---- | ||
| - | // | + | // |
