Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
openstack [Le 16/04/2013, 09:52]
93.187.41.1 [Dashboard Horizon]
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 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 daider 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 maintenu ​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é dune série de logiciels et de projets au code source libre qui sont maintenus ​par la communauté. Il comprend notamment les composants ​OpenStack Computenommé Nova, OpenStack Object Storagenommé Swift, et OpenStack Image Servicenommé 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 linstallation des composants didentité, dimages et de virtualisationsur 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é ​Swiftne 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 dune 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 dun disque dur ou dune 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 FixeSupprimez ​les paquets Network-Manager ou Wicd et resolvconf.+  * Avoir configuré ​le réseau ​avec un adressage ​IP statiqueSupprimer ​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 ​lutilisation de 2 interfaces réseau.
  
  ===== Préparation du système =====  ===== Préparation du système =====
Ligne 71: Ligne 74:
 </​code>​ </​code>​
  
 +<note tip> Assurez-vous d'​avoir décommenté l'​option permettant le forward des paquets en IPV4 dans le fichier /​etc/​sysctl.conf
 + :
 +<​file>​
 +net.ipv4.ip_forward=1
 +</​file>​
 +puis lancez la commande :
 +<​code>​sysctl -p</​code>​
 +</​note>​
 ==== Serveur NTP ==== ==== Serveur NTP ====
  
Ligne 82: Ligne 93:
 </​file>​ </​file>​
  
-redémarrez le service ​+redémarrez le service
 <​code>​ <​code>​
 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 sarticule autour de 3 objets 
-  * l'objet //​[[#​Création_des_utilisateurs|User]]//​ représentant l'utilisateur ​final. +  * lobjet //​[[#​Création_des_utilisateurs|User]]//​ représentant lutilisateur ​final ; 
-  * L'objet //​[[#​Création des Tenants|Tenant]]//​ que l'on peut représenter par un projetune organisation au sein duquel ​les instances seront regroupées et administrées par les utilisateurs. +  * l’objet //​[[#​Création des Tenants|Tenant]]//​ que lon 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 lutilisateur 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 ​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 daccè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 152: Ligne 168:
 EOF EOF
 </​code>​ </​code>​
 +
  
 ==== Installation ==== ==== Installation ====
  
-[[:​tutoriel:​comment_installer_un_paquet|Installez les paquets]] **[[apt>​keystone,​python-keystone,​python-keystoneclient]]**+[[:​tutoriel:​comment_installer_un_paquet|Installez les paquets]] **[[apt>​keystone,​python-keystone,​python-keystoneclient,​python-mysqldb]]**.
  
 +Puis supprimez la base de données SQLite :
 +<​code>​
 +rm /​var/​lib/​keystone/​keystone.db
 +</​code>​
 ==== 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]
-   bind_host = 0.0.0.0 +bind_host = 0.0.0.0 
-   ​public_port = 5000 +public_port = 5000 
-   ​admin_port = 35357+admin_port = 35357
 # Mot de passe d'​administration # Mot de passe d'​administration
-   admin_token = ADMPASSWD +admin_token = ADMPASSWD 
-   ​compute_port = 8774 +compute_port = 8774 
-   ​verbose = True +verbose = True 
-   ​debug = True +debug = True 
-   ​log_config = /​etc/​keystone/​logging.conf+log_config = /​etc/​keystone/​logging.conf
  
  
 [sql] [sql]
-connection = mysql://​keystone:​SQLPASSWDg@192.168.1.250:​3306/​keystone+connection = mysql://​keystone:​SQLPASSWD@192.168.1.250:​3306/​keystone
 idle_timeout = 200 idle_timeout = 200
 </​file>​ </​file>​
  
-Redémarrez keystone: +Redémarrez ​le service //keystone// :
 <​code>​ <​code>​
 sudo service keystone restart sudo service keystone restart
 </​code>​ </​code>​
  
-et 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 à l’utilisateur / au groupe //​keystone//​ :​
 +<​code>​
 +chown keystone:​keystone /​var/​lib/​keystone/​keystone.db
 +</​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 lauthentification 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 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 :​
 <​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 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 :​
 <​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 251: 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 despace disque pour un projetetc. 
-  - //​[[#​Role_Membre|Member]]//:​ permet de gérer le contenu ​du projet (création ​d'​instances ​de machinesajout 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 machineajouter ​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 270: 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 283: 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 296: 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 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 dadministrer 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 324: 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>​
 +-------------+----------------------------------+ +-------------+----------------------------------+
Ligne 359: Ligne 409:
 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 }'` 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 }'`
 </​code>​ </​code>​
 +
  
 ==== Création d'un utilisateur supplémentaire ==== ==== Création d'un utilisateur supplémentaire ====
 Il s'​agira dans l'​exemple qui suit de la création d'un compte utilisateur,​ d'un projet supplémentaire et définition du role avec la variable d'​environnement $USER (remplacer par ce que vous voulez, c'est juste un exemple)\\ Il s'​agira dans l'​exemple qui suit de la création d'un compte utilisateur,​ d'un projet supplémentaire et définition du role avec la variable d'​environnement $USER (remplacer par ce que vous voulez, c'est juste un exemple)\\
-Le rôle "​Member"​ est suffisant. Remplacez USRPASSWD par un mot de passe de votre choix+Le rôle "​Member"​ est suffisant. Remplacez USRPASSWD par un mot de passe de votre choix
 +L'User $USER (xavier ici) a un Role "​Member"​ sur le Tenant $USER (xavier ici).
  
 === User === === User ===
Ligne 397: Ligne 449:
 === Rôle === === Rôle ===
 <​code>​ <​code>​
-keystone --token ADMPASSWD --endpoint http://​192.168.1.250:​35357/​v2.0/​ user-role-add --user 13247a59ad844458ad36c0bd06451376 --role 84697b61736c439288900904bdf4a48d --tenant_id c6f05a03b4aa482c91b61a2230356618+keystone --token ADMPASSWD --endpoint http://​192.168.1.250:​35357/​v2.0/​ user-role-add --user-id 13247a59ad844458ad36c0bd06451376 --role-id 84697b61736c439288900904bdf4a48d --tenant_id c6f05a03b4aa482c91b61a2230356618
 </​code>​ </​code>​
 +
 +
  
 ==== Création des services et leurs points d'​accès ==== ==== Création des services et leurs points d'​accès ====
Ligne 424: Ligne 478:
 |   ​Property ​ |              Value               | |   ​Property ​ |              Value               |
 +-------------+----------------------------------+ +-------------+----------------------------------+
-| adminurl ​   | http://​192.168.1.250:​35357/​v2.0 ​ |+| adminurl ​   | http://​192.168.2.250:​35357/​v2.0 ​ |
 | id          | f1c517d5754a493fa67fc21b3f4264c4 | | id          | f1c517d5754a493fa67fc21b3f4264c4 |
-| internalurl | http://​192.168.1.250:​5000/​v2.0 ​  | +| internalurl | http://​192.168.2.250:​5000/​v2.0 ​  | 
-| publicurl ​  | http://​192.168.1.250:​5000/​v2.0 ​  |+| publicurl ​  | http://​192.168.2.250:​5000/​v2.0 ​  |
 | region ​     | RegionOne ​                       | | region ​     | RegionOne ​                       |
 | service_id ​ | 41905e02540d48228166c6d06ddcd9f0 | | service_id ​ | 41905e02540d48228166c6d06ddcd9f0 |
Ligne 442: Ligne 496:
 keystone --endpoint http://​localhost:​35357/​v2.0 --token ​ ADMPASSWD user-list keystone --endpoint http://​localhost:​35357/​v2.0 --token ​ ADMPASSWD user-list
 </​code>​ </​code>​
-  * La méthode user/​password avec les arguments ''​%%--%%username'',​ ''​%%--%%tenant_name'' ​et ''​%%--%%password'',​ après définition des utilisateurs,​ rôles et projets.+  * La méthode user/​password avec les arguments ''​%%--%%username'',​ ''​%%--%%tenant_name''​''​%%--%%password'',​ après définition des utilisateurs,​ rôles et projets, et l'​argument ​ ''​%%--%%auth_url''​.
 <​code>​ <​code>​
 keystone --username admin --password ADMPASSWD --tenant_name admin --auth_url http://​localhost:​5000/​v2.0 user-list keystone --username admin --password ADMPASSWD --tenant_name admin --auth_url http://​localhost:​5000/​v2.0 user-list
Ligne 496: Ligne 550:
  
  
-Il est bien sur possible d'​envoyer des commandes à partir de n'​importe quel autre ordinateur où le paquet **[[apt>​python-keystoneclient|python-keystoneclient]]** est installé.\\+Il est bien sûr possible d'​envoyer des commandes à partir de n'​importe quel autre ordinateur où le paquet **[[apt>​python-keystoneclient|python-keystoneclient]]** est installé.\\
  
-Pour voir la liste des commandes disponibles et les détails utilisez : +Pour voir la liste des commandes disponibles et les détails utilisez :
 <​code>​ <​code>​
 keystone help [NOM DE LA COMMANDE] keystone help [NOM DE LA COMMANDE]
Ligne 598: Ligne 652:
 admin_password = ADMPASSWD admin_password = ADMPASSWD
 </​file>​ </​file>​
-et la section ​+et la section
 <​file>​ <​file>​
 [pipeline:​glance-registry] [pipeline:​glance-registry]
Ligne 609: Ligne 663:
 sudo glance-manage version_control 0 sudo glance-manage version_control 0
 sudo glance-manage db_sync sudo glance-manage db_sync
 +</​code>​
 +
 +Si message d'​erreur "​CRITICAL glance [-] ValueError: Tables "​migrate_version"​ have non utf8 collation, please make sure all tables are CHARSET=utf8"​ :
 +
 +<​code>​
 +mysql -u root -p glance
 +alter table migrate_version convert to character set utf8 collate utf8_unicode_ci;​
 +flush privileges;
 +quit
 </​code>​ </​code>​
  
Ligne 671: Ligne 734:
 </​code>​ </​code>​
 où: où:
-  * <Image name> : Nom que l'on veut donner a l'​image +  * <Image name> :Nom que l'on veut donner a l'​image 
-  * is_public=true : L'​image est visible (true) ou non (false) dans tous les projets +  * is_public=true :​L'​image est visible (true) ou non (false) dans tous les projets 
-  * <​container_format>​ : Container Type de container bare pas de container, ovf OVF Container, aki ari ami Amazon kernel ramdisk ou machine +  * <​container_format>​ :Container Type de container bare pas de container, ovf OVF Container, aki ari ami Amazon kernel ramdisk ou machine 
-  * <​disk_format>​ : Format de l'​image raw, qcow2, vmdk, iso etc... +  * <​disk_format>​ :Format de l'​image raw, qcow2, vmdk, iso etc... 
-  * %%<​filename>​%% : Le nom de l'​image a uploader+  * %%<​filename>​%% :Le nom de l'​image a uploader
  
-Pour voir la liste des commandes disponibles et les détails utilisez : +Pour voir la liste des commandes disponibles et les détails utilisez :
 <​code>​ <​code>​
 glance help [NOM DE LA COMMANDE] glance help [NOM DE LA COMMANDE]
Ligne 694: Ligne 757:
 EOF EOF
 </​code>​ </​code>​
 +
 +
  
 ==== Installation ==== ==== Installation ====
Ligne 701: Ligne 766:
 ==== Configuration ==== ==== Configuration ====
    
-Création des services et points d'​accès pour Keystone, au nombre de 2: les services [[#service compute|compute]] et [[#service volume|volume]].+Création des services et points d'​accès pour Keystone, au nombre de 2: les services ​de type [[#service compute|compute]] ​(auquel on donne le nom de "​nova"​) ​et de type [[#service volume|volume]] ​(auquel on donne le nom de "​volume"​).
 == Service compute == == Service compute ==
 <​code>​ <​code>​
Ligne 772: Ligne 837:
 </​file>​ </​file>​
 [[:​tutoriel:​comment_modifier_un_fichier|Ouvrez avec les droits d'​administration]] le fichier **/​etc/​nova/​nova.conf** et remplacer tout avec les lignes ci dessous.\\ [[:​tutoriel:​comment_modifier_un_fichier|Ouvrez avec les droits d'​administration]] le fichier **/​etc/​nova/​nova.conf** et remplacer tout avec les lignes ci dessous.\\
-La configuration obtenue utilisera le mode Dhcp. La ligne "​nova.scheduler.simple.SimpleScheduler" ​défini ​une utilisation avec un seul serveur.\\ +La configuration obtenue utilisera le mode DHCP. La ligne "​nova.scheduler.simple.SimpleScheduler" ​définit ​une utilisation avec un seul serveur.\\ 
-Pour un mode Vlan, pour utiliser plusieurs serveurs ou d'​autres options, reportez-vous à la [[http://doc.openstack.org/​|documentation OpenStack]] **(en)**.+Pour un mode VLAN, pour utiliser plusieurs serveurs ou d'​autres options, reportez-vous à la [[http://docs.openstack.org/​|documentation OpenStack]] **(en)**.
  
 <​file>​ <​file>​
Ligne 791: Ligne 856:
 --keystone_ec2_url=http://​192.168.1.250:​5000/​v2.0/​ec2tokens --keystone_ec2_url=http://​192.168.1.250:​5000/​v2.0/​ec2tokens
 --scheduler_driver=nova.scheduler.simple.SimpleScheduler --scheduler_driver=nova.scheduler.simple.SimpleScheduler
 +#​root_helper est deprecie, rootwrap_config=/​etc/​nova/​rootwrap.conf
 --root_helper=sudo nova-rootwrap --root_helper=sudo nova-rootwrap
 # AUTHENTICATION # AUTHENTICATION
Ligne 823: 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/​24 ​+--floating_range=192.168.1.0/​24
 --force_dhcp_release --force_dhcp_release
 --public_interface=br0 --public_interface=br0
Ligne 833: Ligne 899:
 </​file>​ </​file>​
  
-toutes ​les entrées //​%%--%%flat...//​ correspondent au réseau privé(172.16.0.0/​24,​ début 172.16.0.2),​ destiné aux communications entre les VMs (pour Virtual Machine ou machines virtuelles),​ les autres serveurs Nova ou de stockage s'il y a...\\+Toutes ​les entrées //​%%--%%flat...//​ correspondent au réseau privé(172.16.0.0/​24,​ début 172.16.0.2),​ destiné aux communications entre les VMs (pour Virtual Machine ou machines virtuelles),​ les autres serveurs Nova ou de stockage s'il y a...\\
  
 //​%%--%%floating_range//​ est le réseau public (LAN ou Internet) sur lequel est branché l'​interface br0, pour attribuer une adresse aux VMs sur le réseau public. L'​adresse 192.168.1.250 est celle de l'​interface br0, ne remplacez pas par 127.0.0.1, ça ne fonctionnera pas.\\ //​%%--%%floating_range//​ est le réseau public (LAN ou Internet) sur lequel est branché l'​interface br0, pour attribuer une adresse aux VMs sur le réseau public. L'​adresse 192.168.1.250 est celle de l'​interface br0, ne remplacez pas par 127.0.0.1, ça ne fonctionnera pas.\\
Ligne 862: Ligne 928:
 for a in libvirt-bin nova-network nova-compute nova-api nova-objectstore nova-scheduler nova-volume nova-cert nova-consoleauth novnc; do sudo service "​$a"​ start; done for a in libvirt-bin nova-network nova-compute nova-api nova-objectstore nova-scheduler nova-volume nova-cert nova-consoleauth novnc; do sudo service "​$a"​ start; done
 </​code>​ </​code>​
- 
 ==== Utilisation ==== ==== Utilisation ====
  
 Vous pouvez maintenant vérifier que tous les services fonctionnent,​ le résultat dans la colonne //STATE// doit être Vous pouvez maintenant vérifier que tous les services fonctionnent,​ le résultat dans la colonne //STATE// doit être
-  * un smiley, représenté par %%:-)%%, pour "​OK"​.  +  * un smiley, représenté par %%:-)%%, pour "​OK"​. 
-  * un XXX : quelque chose n'as pas fonctionné,​ consultez les logs dans **/​var/​log/​nova/​nova-le_nom_du_service_KO**.+  * un XXX :quelque chose n'as pas fonctionné,​ consultez les logs dans **/​var/​log/​nova/​nova-le_nom_du_service_KO**.
  
 <​code>​ <​code>​
Ligne 916: Ligne 981:
 === Parefeu === === Parefeu ===
  
-Par défaut, les règles de parefeu bloquent les paquets entrants sur l'​interface publique à destination des VMs. Il est possible de créer des ensembles de règles. L'​ensemble ​de règles ​utilisée ​devra être spécifié au lancement de chaque instance. Ci-dessous un exemple de création de règles sur l'​ensemble "​default"​ créé automatiquement à l'​installation,​ si vous voulez autoriser le ping et [[:SSH]] pour toutes les VMs sur l'​interface publique ( icmp -1 correspond a tout ).+Par défaut, les règles de parefeu bloquent les paquets entrants sur l'​interface publique à destination des VMs. Il est possible de créer des ensembles de règles. L'​ensemble ​des règles ​utilisées ​devra être spécifié au lancement de chaque instance. Ci-dessous un exemple de création de règles sur l'​ensemble "​default"​ créé automatiquement à l'​installation,​ si vous voulez autoriser le ping et [[:SSH]] pour toutes les VMs sur l'​interface publique ( icmp -1 correspond a tout ).
  
 <​code>​ <​code>​
Ligne 968: Ligne 1033:
 </​code>​ </​code>​
  
-Il faut définir les spécifications de la future VM, pour voir les possibilités,​ utilisez la commande ci-dessous, la création de vos propres définitions étant bien sur possible:+Il faut définir les spécifications de la future VM, pour voir les possibilités,​ utilisez la commande ci-dessous, la création de vos propres définitions étant bien sûr possible:
  
 <​code>​ <​code>​
Ligne 987: 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 ''​nova boot'',​ le paramètre //​%%--%%flavor//​ indique ​quelles ​spécifications,​ //​%%--%%image//​ l'ID de l'​image fournie par glance, vient ensuite le nom et la clé ssh utilisée. Indiquez aussi l'​ensemble de règles de [[#​Parefeu|parefeu]],​ sinon c'est l'​ensemble "​default"​ qui est appliqué.+Lancez votre première VM avec la commande ''​nova boot'',​ le paramètre //​%%--%%flavor//​ indique ​les spécifications ​choisies, //​%%--%%image//​ l'ID de l'​image fournie par glance, vient ensuite le nom et la clé ssh utilisée. Indiquez aussi l'​ensemble de règles de [[#​Parefeu|parefeu]],​ sinon c'est l'​ensemble "​default"​ qui est appliqué.
  
 <​code>​ <​code>​
Ligne 1027: Ligne 1092:
 </​code>​ </​code>​
  
-Un récapitulatif des propriétés de la machine s'​affiche. Pour le réafficher,​ utilisez la commande ​+Un récapitulatif des propriétés de la machine s'​affiche. Pour le réafficher,​ utilisez la commande
  
 <​code>​ <​code>​
Ligne 1094: Ligne 1159:
 Vous pouvez maintenant vous reconnecter à la VM pour partitionner ce disque et l'​utiliser. Vous pouvez maintenant vous reconnecter à la VM pour partitionner ce disque et l'​utiliser.
  
-Connectez maintenant cette instance virtuelle ​votre LAN.\\ +Connectez maintenant cette instance virtuelle ​à votre LAN.\\ 
-Il faut tout d'​abord allouer une adresse IP +Il faut tout d'​abord allouer une adresse IP
  
 <​code>​ <​code>​
Ligne 1138: Ligne 1203:
 </​code>​ </​code>​
  
-Il est bien sur possible d'​envoyer des commandes à partir de n'​importe quel autre ordinateur où les paquets **[[apt>​python-novaclient,​python-nova-adminclient]]** sont installés.\\+Il est bien sûr possible d'​envoyer des commandes à partir de n'​importe quel autre ordinateur où les paquets **[[apt>​python-novaclient,​python-nova-adminclient]]** sont installés.\\
  
-Pour voir la liste des commandes disponibles et les détails utilisez : +Pour voir la liste des commandes disponibles et les détails utilisez :
 <​code>​ <​code>​
 nova help [NOM DE LA COMMANDE] nova help [NOM DE LA COMMANDE]
Ligne 1169: Ligne 1234:
 N'​hésitez pas à... patienter</​note>​ N'​hésitez pas à... patienter</​note>​
  
-Les identifiants de connexion de l'​administrateur sont les mêmes que ceux du fichier **.novarc**. Si vous avez suivi ce document sans rien changer il s'agit donc pour le compte d'​administration de:\\+<note important>​L'​url par défaut est http://​IP/​horizon</​note>​ 
 + 
 +Les identifiants de connexion de l'​administrateur sont les mêmes que ceux du fichier **.novarc**. Si vous avez suivi ce document sans rien changeril s'agit donc pour le compte d'​administration de:\\
 //Username //:​%% %%[[#​Création_du_compte_administrateur|admin]]%% ​   %%//​Password//:​%% %%[[#​Création_du_compte_administrateur|ADMPASSWD]].\\ //Username //:​%% %%[[#​Création_du_compte_administrateur|admin]]%% ​   %%//​Password//:​%% %%[[#​Création_du_compte_administrateur|ADMPASSWD]].\\
-Les comptes qui ont pour rôle "​admin"​ ont accès ​l'​interface d'​administration sur le Dashboard, ainsi qu'leur(s) projet(s). Les rôles "​Member"​ n'ont accès qu'leur(s) projet(s).+Les comptes qui ont pour rôle "​admin"​ ont accès ​à l'​interface d'​administration sur le Dashboard, ainsi qu'à leur(s) projet(s). Les rôles "​Member"​ n'ont accès qu'à leur(s) projet(s).
  
 === Accès Admin === === Accès Admin ===
  
-Dans l'​ordre les différents menus :  +Dans l'​ordre les différents menus : 
- * //​Overview//​ : Récapitulatif de l'​usage des serveurs par projet, utilisation actuelle en nombre de CPU virtuels, RAM et Disques puis compteur en CPU et espace disque(GB) par heures. + * //​Overview//​ :​Récapitulatif de l'​usage des serveurs par projet, utilisation actuelle en nombre de CPU virtuels, RAM et Disques puis compteur en CPU et espace disque(GB) par heures. 
- * //​Instances//​ : Liste des instances de machines virtuelles actuelles plus quelques infos globales comme le projet auquel elles appartiennent,​ le serveur hôte, l'​adresse IP, la taille, le statut et les actions en cours. + * //​Instances//​ :Liste des instances de machines virtuelles actuelles plus quelques infos globales comme le projet auquel elles appartiennent,​ le serveur hôte, l'​adresse IP, la taille, le statut et les actions en cours. 
- * //​Services//​ : Liste des services activés et le serveur hôte. + * //​Services//​ :Liste des services activés et le serveur hôte. 
- * //Flavors// : La liste des types d'​instances disponibles,​ leurs spécifications en nombre de CPUs, mémoire, espace disque. La création de nouvelles définitions d'​instance est possible. + * //Flavors// :La liste des types d'​instances disponibles,​ leurs spécifications en nombre de CPUs, mémoire, espace disque. La création de nouvelles définitions d'​instance est possible. 
- * //Images// : Les images disques stockées par le service Glance. + * //Images// :Les images disques stockées par le service Glance. 
- * //​Projects//​ : les projets existants et leur statut. Il est possible de créer de nouveaux projets. + * //​Projects//​ :les projets existants et leur statut. Il est possible de créer de nouveaux projets. 
- * //Users// : La liste des utilisateurs enregistrés,​ avec la possibilité d'​ajouter ou d'​éditer les détails mais pas d'​ajouter l'​utilisateur ​plusieurs projets. + * //Users// :La liste des utilisateurs enregistrés,​ avec la possibilité d'​ajouter ou d'​éditer les détails mais pas d'​ajouter l'​utilisateur ​à plusieurs projets. 
- * //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'​utilisateur est membre, si il y a. Un bouton permet de basculer entre les différents projets dont l'​utilisateur est membre, si il y a.
-Puis viennent les menus :  +Puis viennent les menus : 
- * //​Overview//​ : Récapitulatif,​ comme dans la partie Admin, mais ne concernant que le projet sélectionné. + * //​Overview//​ :​Récapitulatif,​ comme dans la partie Admin, mais ne concernant que le projet sélectionné. 
- * //Instances & Volumes// : La liste des instances existantes et les possibilité ​de les éditer, la création ou modification des volumes disques virtuels. + * //Instances & Volumes// :La liste des instances existantes et les possibilités ​de les éditer, la création ou modification des volumes disques virtuels. 
- * //Images & Snapshots// : Liste des images autorisées pour le projet, sert a lancer de nouvelles instances. Regroupe aussi les instantanés disponibles,​ instances et volumes disques. + * //Images & Snapshots// :Liste des images autorisées pour le projet, sert a lancer de nouvelles instances. Regroupe aussi les instantanés disponibles,​ instances et volumes disques. 
- * //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 ​et leur interface d'​édition et enfin la liste des clés SSH avec l'​import ou la création de certificat. + * //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 ​et leur interface d'​éditionet enfin la liste des clés SSH avec l'​import ou la création de certificat.
 ===== Créez vos propres images ===== ===== Créez vos propres images =====
  
-L'​intérêt d'​OpenStack étant de déployer rapidement des instances de machines virtuelles, ça ne servirait ​rien de devoir passer ensuite des heures à les configurer. La création de vos propres images vous permettra de gagner un temps précieux.\\+L'​intérêt d'​OpenStack étant de déployer rapidement des instances de machines virtuelles, ça ne servirait ​à rien de devoir passer ensuite des heures à les configurer. La création de vos propres images vous permettra de gagner un temps précieux.\\
 Plusieurs grandes distributions ont été testées avec succès, dont Ubuntu et Debian, RedHat et Centos mais aussi Mandriva. D'​autres systèmes peuvent aussi servir comme FreeBSD ou encore Windows.\\ Plusieurs grandes distributions ont été testées avec succès, dont Ubuntu et Debian, RedHat et Centos mais aussi Mandriva. D'​autres systèmes peuvent aussi servir comme FreeBSD ou encore Windows.\\
-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'​installation du pilote //​Virtio//​.(driver Windows signé disponible [[http://​alt.fedoraproject.org/​pub/​alt/​virtio-win/​latest/​images/​bin/​|ici]]).\\+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'​installation du pilote //​Virtio//​.(driver Windows signé disponible [[http://​alt.fedoraproject.org/​pub/​alt/​virtio-win/​latest/​images/​bin/​|ici]]).\\
  
 Installez et configurez une VM avec [[:KVM]], installez les logiciels et services voulus et les comptes utilisateurs. Gardez à l'​esprit que tout ce que vous faites sur cette image se retrouvera sur chaque instance. Et à l'​inverse,​ tout ce que vous n'​aurez pas fait sera aussi à refaire à chaque nouvelle VM.\\ Installez et configurez une VM avec [[:KVM]], installez les logiciels et services voulus et les comptes utilisateurs. Gardez à l'​esprit que tout ce que vous faites sur cette image se retrouvera sur chaque instance. Et à l'​inverse,​ tout ce que vous n'​aurez pas fait sera aussi à refaire à chaque nouvelle VM.\\
  
-Pour simplifier l'​administration des comptes sur les instances, l'​utilisation d'un annuaire LDAP facilite grandement le travail. Il suffira ensuite de faire les changements sur l'​annuaire pour ne pas être obligé de remettre ses images ​jour.\\+Pour simplifier l'​administration des comptes sur les instances, l'​utilisation d'un annuaire LDAP facilite grandement le travail. Il suffira ensuite de faire les changements sur l'​annuaire pour ne pas être obligé de remettre ses images ​à jour.\\
 Pour finir, pour les images Linux, [[:​tutoriel:​comment_modifier_un_fichier|ouvrez avec les droits d'​administration]] le fichier **/​etc/​rc.local** et ajoutez les lignes suivantes avant la ligne "exit 0" (ou avant "/​var/​lock/​subsys/​local"​ pour Centos). Ceci permettra à l'​instance de récupérer les clés SSH au lancement. Pour finir, pour les images Linux, [[:​tutoriel:​comment_modifier_un_fichier|ouvrez avec les droits d'​administration]] le fichier **/​etc/​rc.local** et ajoutez les lignes suivantes avant la ligne "exit 0" (ou avant "/​var/​lock/​subsys/​local"​ pour Centos). Ceci permettra à l'​instance de récupérer les clés SSH au lancement.
  
Ligne 1224: Ligne 1290:
    
 Pour supprimer cette application,​ [[:​tutoriel:​comment_supprimer_un_paquet|supprimer les paquets]]. Selon la méthode choisie, la configuration globale de l'​application est conservée ou supprimée. Les journaux du système, et les fichiers de préférence des utilisateurs dans leurs dossiers personnels sont toujours conservés.\\ Pour supprimer cette application,​ [[:​tutoriel:​comment_supprimer_un_paquet|supprimer les paquets]]. Selon la méthode choisie, la configuration globale de l'​application est conservée ou supprimée. Les journaux du système, et les fichiers de préférence des utilisateurs dans leurs dossiers personnels sont toujours conservés.\\
-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 1231: Ligne 1297:
  
 ---- ----
-//​Contributeurs principaux : [[utilisateurs:​xavier4811|Xavier4811]].//​+//​Contributeurs principaux :​[[utilisateurs:​xavier4811|Xavier4811]].//​
  
  • openstack.1366098740.txt.gz
  • Dernière modification: Le 16/04/2013, 09:52
  • par 93.187.41.1