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/07/2012, 09:45]
fabux retouche
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 composant ​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(Quantum) et stockage(Swiftne sont pas abordés(du moins pour l'​instant).+ 
 +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|installez ​les paquets]]:​ +  * [[:​tutoriel:​comment_installer_un_paquet|Avoir installé ​les paquets]] ​suivants 
-    * **[[apt>​kvm|kvm]] [[apt>libvirt-bin|libvirt-bin]] [[apt>​virtinst|virtinst]]**. +    * **[[apt>​kvm,libvirt-bin,virtinst]]** 
-    * **[[apt>​mysql-server|mysql-server]] [[apt>​python-mysqldb|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 30: Ligne 33:
 ==== Réseau ==== ==== Réseau ====
  
-<note important>​l'​utilisation d'une interface wifi pour les bridges peut se réveler ​très complexe voire impossible. ​Préferez ​une interface virtuelle</​note>​ +<note important>​l'​utilisation d'une interface wifi pour les bridges peut se révéler ​très complexe voire impossible. ​Préférez ​une interface virtuelle</​note>​ 
-[[:​tutoriel:​comment_modifier_un_fichier|Modifiez avec les droits d'aministration]] votre fichier **/​etc/​network/​interfaces** comme ci-dessous en adaptant a votre configuration.+[[:​tutoriel:​comment_modifier_un_fichier|Modifiez avec les droits d'administration]] votre fichier **/​etc/​network/​interfaces** comme ci-dessous en adaptant a votre configuration.
  
 <​file>​ <​file>​
Ligne 44: Ligne 47:
  
 auto br0 auto br0
-iface inet br0 static+iface br0 inet static
  bridge_ports eth0  bridge_ports eth0
  address 192.168.1.250  address 192.168.1.250
Ligne 52: Ligne 55:
  
 auto br1 auto br1
-iface inet br1 manual+iface br1 inet manual
  bridge_ports eth1  bridge_ports eth1
  
Ligne 65: Ligne 68:
 </​file>​ </​file>​
  
-Redémarrez ​pour que les modifications ​réseau soit prisent ​en compte.\\+Relancez les cartes réseau ​pour que les modifications ​soient prises ​en compte.\\ 
 +<​code>​ 
 +for a in `ifconfig | awk '/​Link/​ { if ($1 != "​lo"​) print $1 }'`; do sudo ifdown $a ; done 
 +sudo ifup -e lo -av 
 +</​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 ====
  
-Le serveur [[:​ntp|NTP]] étant nécessaire ​la bonne synchronisation du cloud, ​ [[:​tutoriel:​comment_installer_un_paquet|installez le paquet]] **[[apt>​ntp|ntp]]**.\\ +Le serveur [[:​ntp|NTP]] étant nécessaire ​à la bonne synchronisation du cloud, ​ [[:​tutoriel:​comment_installer_un_paquet|installez le paquet]] **[[apt>​ntp|ntp]]**.\\ 
-Ensuite, [[:​tutoriel:​comment_modifier_un_fichier|ouvrez avec les droits d'amdministration]] le fichier **/​etc/​ntp.conf** et ajoutez les lignes+Ensuite, [[:​tutoriel:​comment_modifier_un_fichier|ouvrez avec les droits d'administration]] le fichier **/​etc/​ntp.conf** et ajoutez les lignes
  
 <​file>​ <​file>​
-serveur ​ntp.ubuntu.com iburst +server ​ntp.ubuntu.com iburst 
-serveur ​127.127.1.0+server ​127.127.1.0
 fudge 127.127.1.0 stratum 10 fudge 127.127.1.0 stratum 10
 </​file>​ </​file>​
  
-redémarrez le service ​+redémarrez le service
 <​code>​ <​code>​
 sudo service ntp restart sudo service ntp restart
Ligne 86: Ligne 101:
 Les volumes [[:​lvm|LVM]] serviront de disques durs supplémentaires pour les serveurs virtuels. Les volumes [[:​lvm|LVM]] serviront de disques durs supplémentaires pour les serveurs virtuels.
  
-[[:​tutoriel:​comment_installer_un_paquet|Installez les paquets]] **[[apt>​tgt|tgt]] [[apt>open-iscsi|open-iscsi]] [[apt>​open-iscsi-utils|open-iscsi-utils]] [[apt>​lvm2|lvm2]]** \\+[[:​tutoriel:​comment_installer_un_paquet|Installez les paquets]] **[[apt>​tgt,open-iscsi,open-iscsi-utils,lvm2]]** \\
  
 Les commandes qui suivent supposent que vous avez un disque dur **/​dev/​sdc** vide sans [[:​partitions|partition]]. Adaptez les commandes en fonction de votre configuration.\\ Les commandes qui suivent supposent que vous avez un disque dur **/​dev/​sdc** vide sans [[:​partitions|partition]]. Adaptez les commandes en fonction de votre configuration.\\
-Créez une [[:​partitions|partion]] non formatée de 100Gigas sur **/​dev/​sdc** en adaptant à votre configuration:​+Créez une [[:​partitions|partition]] non formatée de 100Gigas sur **/​dev/​sdc** en adaptant à votre configuration:​
 <​code>​ <​code>​
 sudo fdisk /dev/sdc sudo fdisk /dev/sdc
Ligne 105: Ligne 120:
 Pour faire simple: c'est le service qui permet aux composants OpenStack de communiquer entre eux. Pour faire simple: c'est le service qui permet aux composants OpenStack de communiquer entre eux.
  
-[[:​tutoriel:​comment_installer_un_paquet|Installez les paquets]] **[[apt>​rabbitmq-server|rabbitmq-server]] [[apt>memcached|memcached]] [[apt>​python-memcache|python-memcache]]**+[[:​tutoriel:​comment_installer_un_paquet|Installez les paquets]] **[[apt>​rabbitmq-server,memcached,python-memcache]]**
  
 ==== Mysql ==== ==== Mysql ====
-Chaque composant possède sa base de données [[:​mysql|MySQL]],​ contenant toutes les données modifiables ​chaud (ID des images disques, des instances virtuelles, réseaux, identités...). Les données de configuration fixes sont stockées dans des fichiers texte.\\+Chaque composant possède sa base de données [[:​mysql|MySQL]],​ contenant toutes les données modifiables ​à chaud (ID des images disques, des instances virtuelles, réseaux, identités...). Les données de configuration fixes sont stockées dans des fichiers texte.\\
 <note tip>Il est possible d'​utiliser un autre [[:​sgbd|SGBD]],​ MySQL étant recommandé dans la documentation OpenStack.</​note>​ <note tip>Il est possible d'​utiliser un autre [[:​sgbd|SGBD]],​ MySQL étant recommandé dans la documentation OpenStack.</​note>​
  
Ligne 129: 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 ====
-Commencez par créer la base MySQL.+Commencez par créer la base MySQL.\\ 
 +La commande suivante crée un utilisateur et sa base de données nommés "​keystone"​. Changez SQLPASSWD par un mot de passe de votre choix.
 <​code>​ <​code>​
 mysql -u root -p <<EOF mysql -u root -p <<EOF
 CREATE DATABASE keystone; CREATE DATABASE keystone;
-GRANT ALL PRIVILEGES ON keystone.* TO '​keystone'​@'​%'​ IDENTIFIED BY 'qhKz6YYg';+GRANT ALL PRIVILEGES ON keystone.* TO '​keystone'​@'​%'​ IDENTIFIED BY 'SQLPASSWD';
 FLUSH PRIVILEGES; FLUSH PRIVILEGES;
 EOF EOF
 </​code>​ </​code>​
 +
  
 ==== Installation ==== ==== Installation ====
  
-[[:​tutoriel:​comment_installer_un_paquet|Installez les paquets]] **[[apt>​keystone|keystone]] [[apt>python-keystone|python-keystone]] [[apt>python-keystoneclient|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 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 
-   ​admin_token = 2BSpUaPV +# Mot de passe d'​administration 
-   ​compute_port = 8774 +admin_token = ADMPASSWD 
-   ​verbose = True +compute_port = 8774 
-   ​debug = True +verbose = True 
-   ​log_config = /​etc/​keystone/​logging.conf+debug = True 
 +log_config = /​etc/​keystone/​logging.conf
  
  
 [sql] [sql]
-connection = mysql://​keystone:​qhKz6YYg@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 ​<​jeton ​d'authentification de l'​admin> ​--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 :​ 
-Il est bien sur possible d'​envoyer des commandes à partir de n'​importe quel autre ordinateur où python-keystoneclient est installé.\\+<​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 ​2BSpUaPV ​--endpoint http://​192.168.1.250:​35357/​v2.0/​ user-create --name=admin --pass=2BSpUaPV ​--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 207: Ligne 241:
 </​code>​ </​code>​
  
-=== 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 ​2BSpUaPV ​--endpoint http://​192.168.1.250:​35357/​v2.0/​ user-create --name=glance --pass=2BSpUaPV ​--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 226: 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 ​2BSpUaPV ​--endpoint http://​192.168.1.250:​35357/​v2.0/​ user-create --name=nova --pass=2BSpUaPV ​--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 246: 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 
-  - //[[#Compte_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. 
-  - //[[#Compte_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 //​[[#​Compte_KeystoneAdmin|KeystoneAdmin]]//​ et //​[[#​Compte_KeystoneServiceAdmin|KeystoneServiceAdmin]]//​ sont des rôles internes __nécessaires__.+
  
-=== Compte ​admin ===+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 === 
 +Commande à exécuter de manière adaptée :
 <​code>​ <​code>​
-keystone --token ​2BSpUaPV ​--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 264: Ligne 304:
 </​code>​ </​code>​
  
-=== Compte ​Membre ===+=== Rôle Membre === 
 +Commande à exécuter de manière adaptée :
 <​code>​ <​code>​
-keystone --token ​2BSpUaPV ​--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 277: Ligne 319:
 </​code>​ </​code>​
  
-=== Compte ​KeystoneAdmin ===+=== Rôle KeystoneAdmin === 
 +Commande à exécuter de manière adaptée :
 <​code>​ <​code>​
-keystone --token ​2BSpUaPV ​--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 290: Ligne 334:
 </​code>​ </​code>​
  
-=== Compte ​KeystoneServiceAdmin ===+=== Rôle KeystoneServiceAdmin === 
 +Commande à exécuter de manière adaptée :
 <​code>​ <​code>​
-keystone --token ​2BSpUaPV ​--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 304: Ligne 350:
  
 ==== Création des Tenants ==== ==== Création des Tenants ====
-  - le Tenant ​"admin" qui permet ​ses membres d'administrer les services.<​code>​ +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. 
-keystone --token ​2BSpUaPV ​--endpoint http://​192.168.1.250:​35357/​v2.0/​ tenant-create --name=admin</​code><​code>​+ 
 +=== Tenant admin === 
 +Le //Tenant admin// ​permet ​à ses membres dadministrer les services. 
 + 
 +Commande à exécuter de manière adaptée :​ 
 +<​code>​ 
 +keystone --token ​ADMPASSWD ​--endpoint http://​192.168.1.250:​35357/​v2.0/​ tenant-create --name=admin 
 +</​code>​ 
 +Réponse obtenue de manière approximative :​ 
 +<​code>​
 +-------------+----------------------------------+ +-------------+----------------------------------+
 |   ​Property ​ |              Value               | |   ​Property ​ |              Value               |
Ligne 315: Ligne 370:
 +-------------+----------------------------------+ +-------------+----------------------------------+
 </​code>​ </​code>​
-  - le Tenant ​interne des services. <​code>​ + 
-keystone --token ​2BSpUaPV ​--endpoint http://​192.168.1.250:​35357/​v2.0/​ tenant-create --name=service</​code><​code>​+-------------+----------------------------------++=== Tenant ​service === 
 +Le //Tenant service// permet à ses membres d’accéder au service. 
 + 
 +Commande à exécuter de manière adaptée :​ 
 +<​code>​ 
 +keystone --token ​ADMPASSWD ​--endpoint http://​192.168.1.250:​35357/​v2.0/​ tenant-create --name=service 
 +</​code>​ 
 +Réponse obtenue de manière approximative :​ 
 +<​code>​ 
 ++-------------+----------------------------------+
 |   ​Property ​ |              Value               | |   ​Property ​ |              Value               |
 +-------------+----------------------------------+ +-------------+----------------------------------+
Ligne 331: Ligne 395:
 L'//​User//​ "​admin"​ a un //Role// admin sur le //Tenant// "​admin"​.\\ L'//​User//​ "​admin"​ a un //Role// admin sur le //Tenant// "​admin"​.\\
 <​code>​ <​code>​
-keystone --token ​2BSpUaPV ​--endpoint http://​192.168.1.250:​35357/​v2.0/​ user-role-add --user c97c87b3ed894401975dd6d757b40330 --role 3d945f41e08e4e2db1584fdb8f05d333 --tenant_id 0f71e86d30e247d3b1216fe5f2f3aa50+keystone --token ​ADMPASSWD ​--endpoint http://​192.168.1.250:​35357/​v2.0/​ user-role-add --user-id c97c87b3ed894401975dd6d757b40330 --role-id 3d945f41e08e4e2db1584fdb8f05d333 --tenant_id 0f71e86d30e247d3b1216fe5f2f3aa50
 </​code>​ </​code>​
 Comme ce n'est pas pratique de recopier les IDs, les erreurs de frappe seront évitées grâce à l'​outil //awk//. Il s'​agira de définir les rôles ainsi: Comme ce n'est pas pratique de recopier les IDs, les erreurs de frappe seront évitées grâce à l'​outil //awk//. Il s'​agira de définir les rôles ainsi:
Ligne 340: Ligne 404:
 Voici les commandes correspondantes : Voici les commandes correspondantes :
 <​code>​ <​code>​
-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 }'`
 </​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.+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 ===
 <​code>​ <​code>​
-keystone --token ​2BSpUaPV ​--endpoint http://​192.168.1.250:​35357/​v2.0/​ user-create --name=$USER --pass=STRONGPWD ​--email=$USER@example.com+keystone --token ​ADMPASSWD ​--endpoint http://​192.168.1.250:​35357/​v2.0/​ user-create --name=$USER --pass=USRPASSWD ​--email=$USER@example.com
 </​code>​ </​code>​
 <​code>​ <​code>​
Ligne 368: Ligne 434:
 === Tenant === === Tenant ===
 <​code>​ <​code>​
-keystone --token ​2BSpUaPV ​--endpoint http://​192.168.1.250:​35357/​v2.0/​ tenant-create --name=$USER+keystone --token ​ADMPASSWD ​--endpoint http://​192.168.1.250:​35357/​v2.0/​ tenant-create --name=$USER
 </​code>​ </​code>​
 <​code>​ <​code>​
Ligne 381: Ligne 447:
 </​code>​ </​code>​
  
-=== Role ===+=== Rôle ===
 <​code>​ <​code>​
-keystone --token ​2BSpUaPV ​--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 ====
  
-  - En premier le service Keystone<​code>​ +=== Le service Keystone ​=== 
-keystone --token ​2BSpUaPV ​--endpoint http://​192.168.1.250:​35357/​v2.0/​ service-create --name=keystone --type=identity --description='​Keystone Identity Service'</​code><​code>​+<​code>​ 
 +keystone --token ​ADMPASSWD ​--endpoint http://​192.168.1.250:​35357/​v2.0/​ service-create --name=keystone --type=identity --description='​Keystone Identity Service'​ 
 +</​code>​ 
 +<​code>​
 +-------------+----------------------------------+ +-------------+----------------------------------+
 |   ​Property ​ |              Value               | |   ​Property ​ |              Value               |
Ligne 399: Ligne 470:
 +-------------+----------------------------------+ +-------------+----------------------------------+
 </​code>​ </​code>​
-  - Le point d'​accès ​correspondant<​code>​ +=== Le point d'​accès ​Keystone === 
-keystone --token ​2BSpUaPV ​--endpoint http://​192.168.1.250:​35357/​v2.0/​ endpoint-create --region RegionOne --service_id=41905e02540d48228166c6d06ddcd9f0 --publicurl=http://​192.168.1.250:​5000/​v2.0 --internalurl=http://​192.168.1.250:​5000/​v2.0 --adminurl=http://​192.168.1.250:​35357/​v2.0</​code><​code>​+<​code>​ 
 +keystone --token ​ADMPASSWD ​--endpoint http://​192.168.1.250:​35357/​v2.0/​ endpoint-create --region RegionOne --service_id=41905e02540d48228166c6d06ddcd9f0 --publicurl=http://​192.168.1.250:​5000/​v2.0 --internalurl=http://​192.168.1.250:​5000/​v2.0 --adminurl=http://​192.168.1.250:​35357/​v2.0 
 +</​code>​ 
 +<​code>​
 +-------------+----------------------------------+ +-------------+----------------------------------+
 |   ​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 417: Ligne 491:
 ==== Utilisation ==== ==== Utilisation ====
  
-Il y plusieurs ​façon possible ​de s'​identifier en lançant une commande keystone. +Il y plusieurs ​façons possibles ​de s'​identifier en lançant une commande keystone. 
-  ​La méthode d'​identification avec le FIXME token de l'administrateur avec les arguments, utilisable dès que le fichier ​de configuration de Keystone est renseigné.<​code>​ +  ​La méthode d'​identification ​utilisée précédemment ​avec le mot de passe d'administration (variable //​admin_token//​ définie dans le fichier ​**keystone.conf**) avec les arguments ''​%%--%%endpoint''​ et ''​%%--%%token''​ 
-keystone --endpoint http://​localhost:​35357/​v2.0 --token  ​2BSpUaPV ​user-list</​code>​ +<​code>​ 
-  ​- la méthode user/​password avec les arguments, après définition des utilisateurs,​ rôles et projets.<​code>​ +keystone --endpoint http://​localhost:​35357/​v2.0 --token  ​ADMPASSWD ​user-list 
-keystone --username admin --password ​2BSpUaPV ​--tenant_name admin --auth_url http://​localhost:​5000/​v2.0 user-list</​code>​+</​code>​ 
 +  ​* 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>​ 
 +keystone --username admin --password ​ADMPASSWD ​--tenant_name admin --auth_url http://​localhost:​5000/​v2.0 user-list 
 +</​code>​
  
-Pour les deux méthodes, il est possible d'​utiliser des variables d'​environnement pour éviter de ressaisir tous les arguments ​chaque commande.+Pour les deux méthodes, il est possible d'​utiliser des variables d'​environnement pour éviter de ressaisir tous les arguments ​à chaque commande.
  
 __1ère méthode__: __1ère méthode__:
 <​code>​ <​code>​
 export SERVICE_ENDPOINT=http://​localhost:​5000/​v2.0/​ export SERVICE_ENDPOINT=http://​localhost:​5000/​v2.0/​
-export SERVICE_TOKEN=2BSpUaPV+export SERVICE_TOKEN=ADMPASSWD
 keystone user-list keystone user-list
 </​code>​ </​code>​
Ligne 436: Ligne 514:
 export OS_TENANT_NAME=admin ​ export OS_TENANT_NAME=admin ​
 export OS_USERNAME=admin ​ export OS_USERNAME=admin ​
-export OS_PASSWORD=2BSpUaPV ​+export OS_PASSWORD=ADMPASSWD ​
 export OS_AUTH_URL="​http://​localhost:​5000/​v2.0/"​ export OS_AUTH_URL="​http://​localhost:​5000/​v2.0/"​
 keystone user-list keystone user-list
 </​code>​ </​code>​
  
-Pour éviter de refaire un export des variables ​chaque ouverture de terminal, vous pouvez les exporter automatiquement.\\+Pour éviter de refaire un export des variables ​à chaque ouverture de terminal, vous pouvez les exporter automatiquement.\\
 Il suffit de [[:​tutoriel:​comment_modifier_un_fichier|créer]] un fichier **.novarc** dans votre //Dossier Personnel// contenant les lignes suivantes ​ Il suffit de [[:​tutoriel:​comment_modifier_un_fichier|créer]] un fichier **.novarc** dans votre //Dossier Personnel// contenant les lignes suivantes ​
 <​file>​ <​file>​
 export OS_TENANT_NAME=admin export OS_TENANT_NAME=admin
 export OS_USERNAME=admin export OS_USERNAME=admin
-export OS_PASSWORD=2BSpUaPV+export OS_PASSWORD=ADMPASSWD
 export OS_AUTH_URL="​http://​192.168.1.250:​5000/​v2.0/"​ export OS_AUTH_URL="​http://​192.168.1.250:​5000/​v2.0/"​
 </​file>​ </​file>​
Ligne 467: Ligne 545:
 | c97c87b3ed894401975dd6d757b40330 | True    | admin@example.com ​       | admin  | | c97c87b3ed894401975dd6d757b40330 | True    | admin@example.com ​       | admin  |
 +----------------------------------+---------+--------------------------+--------+ +----------------------------------+---------+--------------------------+--------+
-</​code>​ 
-<​code>​ 
-keystone role-list 
-</​code>​ 
-<​code>​ 
-+----------------------------------+----------------------+ 
-|                id                |         ​name ​        | 
-+----------------------------------+----------------------+ 
-| 3d945f41e08e4e2db1584fdb8f05d333 | admin                | 
-| 46590e32dbbe40f29253b5b928b83d1b | KeystoneServiceAdmin | 
-| 84697b61736c439288900904bdf4a48d | Member ​              | 
-| d4d6482b0ec04e0fa24aa8263c182d08 | KeystoneAdmin ​       | 
-+----------------------------------+----------------------+ 
-</​code>​ 
-<​code>​ 
-keystone tenant-list 
-</​code>​ 
-<​code>​ 
-+----------------------------------+---------+---------+ 
-|                id                |   ​name ​ | enabled | 
-+----------------------------------+---------+---------+ 
-| 0f71e86d30e247d3b1216fe5f2f3aa50 | admin   | True    | 
-| 1a3515e468f14e0ebb4a4e83447e7bf7 | service | True    | 
-| c6f05a03b4aa482c91b61a2230356618 | xavier ​ | True    | 
-+----------------------------------+---------+---------+ 
 </​code>​ </​code>​
  
 +Les commandes ''​keystone role-list''​ et ''​ keystone tenant-list''​ affichent respectivement la liste des rôles et tenants.
  
-Pour voir la liste des commandes disponibles et les détails utilisez : + 
 +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 :
 <​code>​ <​code>​
 keystone help [NOM DE LA COMMANDE] keystone help [NOM DE LA COMMANDE]
Ligne 505: Ligne 562:
  
 ==== Préparation de la base de données Mysql ==== ==== Préparation de la base de données Mysql ====
 +La commande suivante crée un utilisateur et sa base de données nommés "​glance"​. Changez SQLPASSWD par un mot de passe de votre choix.
  
 <​code>​ <​code>​
 mysql -u root -p <<EOF mysql -u root -p <<EOF
 CREATE DATABASE glance; CREATE DATABASE glance;
-GRANT ALL PRIVILEGES ON glance.* TO '​glance'​@'​%'​ IDENTIFIED BY '4Wh7g9GE';+GRANT ALL PRIVILEGES ON glance.* TO '​glance'​@'​%'​ IDENTIFIED BY 'SQLPASSWD';
 FLUSH PRIVILEGES; FLUSH PRIVILEGES;
 EOF EOF
 </​code>​ </​code>​
  
-===Installation===+==== Installation ​====
  
-[[:​tutoriel:​comment_installer_un_paquet|Installez les paquets]] **[[apt>​glance|glance]] [[apt>glance-api|glance-api]] [[apt>glance-client|glance-client]] [[apt>glance-common|glance-common]] [[apt>glance-registry|glance-registry]] [[apt>​python-glance|python-glance]]**+[[:​tutoriel:​comment_installer_un_paquet|Installez les paquets]] **[[apt>​glance,glance-api,glance-client,glance-common,glance-registry,python-glance]]**
  
-===Configuration===+==== Configuration ​====
  
-Il faut aussi créer les services et points d'​accès correspondants Keystone+Il faut aussi créer les services et points d'​accès correspondants ​pour Keystone
 <​code>​ <​code>​
 keystone service-create ​ --name=glance --type=image --description='​Glance Image Service'​ keystone service-create ​ --name=glance --type=image --description='​Glance Image Service'​
Ligne 550: Ligne 608:
 </​code>​ </​code>​
  
 +Dans les fichiers ci-dessous, SQLPASSWD est le mot de passe MySQL [[#​Glance|Glance]],​ ADMPASSWD le mot de passe du [[#​Création_du_compte_interne_du_service_Glance|compte de service Glance]]
  
-[[:​tutoriel:​comment_modifier_un_fichier|Ouvrez avec les droits d'​administration]] le fichier **/​etc/​glance/​glance-api-paste.ini** allez la fin pour modifier ces lignes avec les valeurs correspondant à votre installation:​+[[:​tutoriel:​comment_modifier_un_fichier|Ouvrez avec les droits d'​administration]] le fichier **/​etc/​glance/​glance-api-paste.ini**allez à la fin pour modifier ces lignes avec les valeurs correspondant à votre installation:​
  
 <​file>​ <​file>​
 admin_tenant_name = service admin_tenant_name = service
 admin_user = glance admin_user = glance
-admin_password = 2BSpUaPV+admin_password = ADMPASSWD
 </​file>​ </​file>​
  
Ligne 573: Ligne 632:
 [[:​tutoriel:​comment_modifier_un_fichier|Ouvrez avec les droits d'​administration]] le fichier **/​etc/​glance/​glance-registry.conf** et modifiez la ligne suivante: [[:​tutoriel:​comment_modifier_un_fichier|Ouvrez avec les droits d'​administration]] le fichier **/​etc/​glance/​glance-registry.conf** et modifiez la ligne suivante:
 <​file>​ <​file>​
-sql_connection = mysql://​glance:​4Wh7g9GE@192.168.1.250:​3306/​glance+sql_connection = mysql://​glance:​SQLPASSWD@192.168.1.250:​3306/​glance
 </​file>​ </​file>​
-et ajoutez ​la fin+et ajoutez ​à la fin
 <​file>​ <​file>​
 [paste_deploy] [paste_deploy]
Ligne 583: Ligne 642:
 [[:​tutoriel:​comment_modifier_un_fichier|Ouvrez avec les droits d'​administration]] le fichier **/​etc/​glance/​glance-scrubber.conf** pour ajouter les lignes suivantes: [[:​tutoriel:​comment_modifier_un_fichier|Ouvrez avec les droits d'​administration]] le fichier **/​etc/​glance/​glance-scrubber.conf** pour ajouter les lignes suivantes:
 <​file>​ <​file>​
-sql_connection = mysql://​glance:​4Wh7g9GE@192.168.1.250:​3306/​glance+sql_connection = mysql://​glance:​SQLPASSWD@192.168.1.250:​3306/​glance
 sql_idle_timeout = 3600 sql_idle_timeout = 3600
 </​file>​ </​file>​
Ligne 591: Ligne 650:
 admin_tenant_name = service admin_tenant_name = service
 admin_user = glance admin_user = glance
-admin_password = 2BSpUaPV+admin_password = ADMPASSWD
 </​file>​ </​file>​
-et la section ​+et la section
 <​file>​ <​file>​
 [pipeline:​glance-registry] [pipeline:​glance-registry]
Ligne 604: 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 613: Ligne 681:
 ==== Utilisation ==== ==== Utilisation ====
  
-Vérifiez maintenant si tous fonctionne correctement. Téléchargez une première [[wpfr>​Image_disque|image]] ​ pour tester:+Vérifiez maintenant si tout fonctionne correctement. Téléchargez une première [[wpfr>​Image_disque|image]] pour tester:
  
 <​code>​ <​code>​
Ligne 630: Ligne 698:
 </​code>​ </​code>​
  
-La commande ''​glance index''​ donne une liste des images\\ +La commande ''​glance index''​ donne une liste des images: 
-La commande ''​glance details''​ affiche des informations détaillées sur toutes les images.+
 <​code>​ <​code>​
 glance index glance index
Ligne 640: Ligne 708:
 d1b7defa-0c35-4e8c-aef5-0d58c8d80a52 Ubuntu 12.04 cloudimg amd64    qcow2                ovf                       ​230490112 d1b7defa-0c35-4e8c-aef5-0d58c8d80a52 Ubuntu 12.04 cloudimg amd64    qcow2                ovf                       ​230490112
 </​code>​ </​code>​
 +La commande ''​glance details''​ affiche des informations détaillées sur toutes les images.
 <​code>​ <​code>​
 glance details glance details
Ligne 661: Ligne 730:
  
 La syntaxe de la commande **glance add** est la suivante : La syntaxe de la commande **glance add** est la suivante :
-<​code>​glance add name="<​Image name>"​ is_public=true container_format=<​container_format>​ disk_format=<​disk_format>​ < <​filename></​code>​+<​code>​ 
 +glance add name="<​Image name>"​ is_public=true container_format=<​container_format>​ disk_format=<​disk_format>​ < <​filename>​ 
 +</​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 elle visible 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 : 
 +<​code>​ 
 +glance help [NOM DE LA COMMANDE] 
 +</​code>​
  
 ===== Nova ===== ===== Nova =====
-Passez maintenant ​l'​installation de Nova, la gestion des instances des machines virtuelles, de leur espace disque et du réseau.+Passez maintenant ​à l'​installation de Nova, la gestion des instances des machines virtuelles, de leur espace disque et du réseau.
  
 ==== Préparation de la base de données Mysql ==== ==== Préparation de la base de données Mysql ====
 +La commande suivante crée un utilisateur et sa base de données nommés "​nova"​. Changez SQLPASSWD par un mot de passe de votre choix
  
 <​code>​ <​code>​
 mysql -u root -p <<EOF mysql -u root -p <<EOF
 CREATE DATABASE nova; CREATE DATABASE nova;
-GRANT ALL PRIVILEGES ON nova.* TO '​nova'​@'​%' ​ +GRANT ALL PRIVILEGES ON nova.* TO '​nova'​@'​%'​ IDENTIFIED BY 'SQLPASSWD';
-  ​IDENTIFIED BY '5DTSDdzj';+
 EOF EOF
 </​code>​ </​code>​
 +
 +
  
 ==== Installation ==== ==== Installation ====
Ligne 688: Ligne 766:
 ==== Configuration ==== ==== Configuration ====
    
-Création des services et points d'​accès pour Keystone, au nombre de 2: les services compute et 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 ==
 <​code>​ <​code>​
 keystone service-create --name=nova --type=compute --description='​OpenStack Compute Service'​ keystone service-create --name=nova --type=compute --description='​OpenStack Compute Service'​
Ligne 703: Ligne 782:
 </​code>​ </​code>​
 <​code>​ <​code>​
-keystone endpoint-create --region RegionOne --service_id=4ba6c7149dd1421f8c429afc0c8dbdfe --publicurl='​http://​192.168.1.250:​8774/​v2/​%(tenant_id)s'​ --internalurl='​http://​192.168.1.250:​8774/​v2/​%(tenant_id)s'​ -- +keystone endpoint-create --region RegionOne --service_id=4ba6c7149dd1421f8c429afc0c8dbdfe --publicurl='​http://​192.168.1.250:​8774/​v2/​%(tenant_id)s'​ --internalurl='​http://​192.168.1.250:​8774/​v2/​%(tenant_id)s'​ --adminurl='​http://​192.168.1.250:​8774/​v2/​%(tenant_id)s'​
-adminurl='​http://​192.168.1.250:​8774/​v2/​%(tenant_id)s'​+
 </​code>​ </​code>​
 <​code>​ <​code>​
Ligne 718: Ligne 796:
 +-------------+--------------------------------------------+ +-------------+--------------------------------------------+
 </​code>​ </​code>​
 +
 +== Service volume ==
 <​code>​ <​code>​
 keystone service-create --name=volume --type=volume --description='​OpenStack Volume Service'​ keystone service-create --name=volume --type=volume --description='​OpenStack Volume Service'​
 +</​code>​
 +<​code>​
 +-------------+----------------------------------+ +-------------+----------------------------------+
 |   ​Property ​ |              Value               | |   ​Property ​ |              Value               |
Ligne 744: Ligne 826:
 +-------------+--------------------------------------------+ +-------------+--------------------------------------------+
 </​code>​ </​code>​
 +\\
 +
 +Dans les fichiers ci-dessous, SQLPASSWD est le mot de passe MySQL [[#​Nova|Nova]],​ ADMPASSWD le mot de passe du [[#​Création_du_compte_interne_du_service_Nova|compte de service Nova]]
  
 [[:​tutoriel:​comment_modifier_un_fichier|Ouvrez avec les droits d'​administration]] le fichier **/​etc/​nova/​api-paste.ini** et modifiez les lignes: [[:​tutoriel:​comment_modifier_un_fichier|Ouvrez avec les droits d'​administration]] le fichier **/​etc/​nova/​api-paste.ini** et modifiez les lignes:
Ligne 749: Ligne 834:
 admin_tenant_name = service admin_tenant_name = service
 admin_user = nova admin_user = nova
-admin_password = 2BSpUaPV+admin_password = ADMPASSWD
 </​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 documentation OpenStack. ​FIXME \\+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 771: 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 778: Ligne 864:
 --iscsi_ip_prefix=172.16.0 --iscsi_ip_prefix=172.16.0
 # DATABASE # DATABASE
---sql_connection=mysql://​nova:​5DTSDdzj@192.168.1.250/​nova+--sql_connection=mysql://​nova:​SQLPASSWD@192.168.1.250/​nova
 # COMPUTE # COMPUTE
 --libvirt_type=kvm --libvirt_type=kvm
Ligne 803: 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 813: 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)\\ +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) sur lequel est branché l'​interface br0, pour attribuer une adresse aux VM (pour Virtual Machine ou machines virtuelles) ​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.\\
  
 Modifiez les [[:droits]] sur le répertoire **/​etc/​nova** Modifiez les [[:droits]] sur le répertoire **/​etc/​nova**
Ligne 841: 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 :-) 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 863: Ligne 949:
  
 <note important>​L'​affichage du résultat d'une commande est beaucoup plus rapide que son exécution réelle. Si vous n'​obtenez pas de message d'​erreur,​ patientez quelques instants et vérifiez avec une commande d'​affichage que l'​action a bien été prise en compte.\\ <note important>​L'​affichage du résultat d'une commande est beaucoup plus rapide que son exécution réelle. Si vous n'​obtenez pas de message d'​erreur,​ patientez quelques instants et vérifiez avec une commande d'​affichage que l'​action a bien été prise en compte.\\
-Relancer une commande ou demander son annulation alors qu'​elle est en cours d'​exécution peut rendre le composant Nova instable et empêcher la suppression de l'​action demandée ou laisser des entrées indésirables dans la base de données. Exemples: l'atribution ​d'une adresse IP publique ou la création d'un disque virtuel.\\+Relancer une commande ou demander son annulation alors qu'​elle est en cours d'​exécution peut rendre le composant Nova instable et empêcher la suppression de l'​action demandée ou laisser des entrées indésirables dans la base de données. Exemples: l'attribution ​d'une adresse IP publique ou la création d'un disque virtuel.\\
 N'​hésitez pas à... patienter</​note>​ N'​hésitez pas à... patienter</​note>​
 +
 +=== Images disques ===
  
 Listez les images disque fournies par le service Glance Listez les images disque fournies par le service Glance
Ligne 879: Ligne 967:
 </​code>​ </​code>​
  
-Profitez-en pour créer les réseaux privés et publics. Les adresses seront enregistrées dans la base MySQL.+=== Réseaux ===
  
 +Profitez-en pour créer les réseaux privés et publics. Les adresses seront enregistrées dans la base MySQL.
 +Le réseau public
 <​code>​ <​code>​
-sudo nova-manage network create private --fixed_range_v4=172.16.0.0/​24 --num_networks=1 --bridge=br1 --bridge_interface=eth1 --network_size=256 
 sudo nova-manage floating create --ip_range=192.168.1.0/​24 sudo nova-manage floating create --ip_range=192.168.1.0/​24
 </​code>​ </​code>​
 +Le réseau privé, destiné aux communications entre les VMs, les autres serveurs Nova ou de stockage s'il y a...
 +<​code>​
 +sudo nova-manage network create private --fixed_range_v4=172.16.0.0/​24 --num_networks=1 --bridge=br1 --bridge_interface=eth1 --network_size=256
 +</​code>​
 +
 +=== 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 913: Ligne 1008:
 <​code>​ <​code>​
 nova secgroup-list-rules default nova secgroup-list-rules default
 +</​code>​
 +<​code>​
 +-------------+-----------+---------+-----------+--------------+ +-------------+-----------+---------+-----------+--------------+
 | IP Protocol | From Port | To Port |  IP Range | Source Group | | IP Protocol | From Port | To Port |  IP Range | Source Group |
Ligne 922: Ligne 1019:
  
  
-===== Première machine virtuelle ​=====+==== Première machine virtuelle ====
 Maintenant que tout fonctionne, vous allez pouvoir créez votre première VM.\\ Maintenant que tout fonctionne, vous allez pouvoir créez votre première VM.\\
-Assurez vous d'​avoir créé une clé [[:SSH]]:+Assurez-vous d'​avoir créé une clé [[:SSH]]:
  
 <​code>​ <​code>​
Ligne 930: Ligne 1027:
 </​code>​ </​code>​
  
-Ajoutez la au serveur+Ajoutez-la au serveur
  
 <​code>​ <​code>​
Ligne 936: Ligne 1033:
 </​code>​ </​code>​
  
-Il faut définir les spécifications de la future VM, pour voir les possibilités,​ utilisez la commande ci-dessousla création de vos propres définitions ​est bien sur possible.+Il faut définir les spécifications de la future VM, pour voir les possibilités,​ utilisez la commande ci-dessousla création de vos propres définitions ​étant ​bien sûr possible:
  
 <​code>​ <​code>​
Ligne 953: Ligne 1050:
 </​code>​ </​code>​
  
-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 parfeu, 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 995: 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 1014: Ligne 1111:
 </​code>​ </​code>​
  
-Connectez vous sur la VM+Connectez-vous sur la VM
  
 <​code>​ <​code>​
Ligne 1042: Ligne 1139:
 </​code>​ </​code>​
  
-Attachez le à la VM+Attachez-le à la VM
  
 <​code>​ <​code>​
Ligne 1060: Ligne 1157:
 </​code>​ </​code>​
  
-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 1076: Ligne 1173:
 </​code>​ </​code>​
  
-Puis attachez cette adresse ​la VM+Puis attachez cette adresse ​à la VM
 <​code>​ <​code>​
 nova add-floating-ip myfirstvm 192.168.1.1 nova add-floating-ip myfirstvm 192.168.1.1
 </​code>​ </​code>​
-Patientez quelques secondes et vérifiez la présence sur votre LAN d'​une ​mchine a cette adresse+Patientez quelques secondes et vérifiez la présence sur votre LAN d'​une ​machine à cette adresse 
 +<​code>​ 
 +ping -c 2 192.168.1.1 
 +</​code>​
 <​code>​ <​code>​
-ping 192.168.1.1 
 PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data. PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
 64 bytes from 192.168.1.1:​ icmp_req=1 ttl=64 time=0.589 ms 64 bytes from 192.168.1.1:​ icmp_req=1 ttl=64 time=0.589 ms
 64 bytes from 192.168.1.1:​ icmp_req=2 ttl=64 time=0.452 ms 64 bytes from 192.168.1.1:​ icmp_req=2 ttl=64 time=0.452 ms
-^C+
 --- 192.168.1.1 ping statistics --- --- 192.168.1.1 ping statistics ---
 2 packets transmitted,​ 2 received, 0% packet loss, time 999ms 2 packets transmitted,​ 2 received, 0% packet loss, time 999ms
Ligne 1104: Ligne 1203:
 </​code>​ </​code>​
  
 +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 :
 +<​code>​
 +nova help [NOM DE LA COMMANDE]
 +</​code>​
  
 ===== Dashboard Horizon ===== ===== Dashboard Horizon =====
-Passons a l'​interface graphique, le dashboard ​Horizon+L'​interface graphique, le Dashboard ​Horizon, a été développée pour simplifier l'​administration du serveur et des projets. L'​accès se fait à partir d'un [[:​navigateur]] web pointant à l'​adresse du serveur.\\ 
 +Les différents services doivent être installés et configurés avant de pouvoir l'​utiliser. Une grande partie des commandes est alors à portée d'un clic de souris.\\
  
 ==== Installation ==== ==== Installation ====
  
-[[:​tutoriel:​comment_installer_un_paquet|Installez les paquets]] **[[apt>​apache2|apache2]] [[apt>libapache2-mod-wsgi|libapache2-mod-wsgi]] [[apt>​openstack-dashboard|openstack-dashboard]]**+[[:​tutoriel:​comment_installer_un_paquet|Installez les paquets]] **[[apt>​apache2,libapache2-mod-wsgi,openstack-dashboard]]**
  
 Redémarrez le serveur web [[:​Apache2|Apache]] pour vérifier que tout est OK Redémarrez le serveur web [[:​Apache2|Apache]] pour vérifier que tout est OK
Ligne 1124: Ligne 1230:
 {{ ::​dashboard.png?​600 |Interface de dashboard Horizon}} {{ ::​dashboard.png?​600 |Interface de dashboard Horizon}}
  
-<note important>​L'​affichage du résultat d'une commande ​est beaucoup plus rapide que son exécution réelle. Si vous n'​obtenez pas de message d'​erreur, ​patientez ​quelques ​instants et vérifiez avec une commande d'​affichage que l'​action a bien été prise en compte.\\ +<note important>​Comme pour les commandes shell, l'​affichage du résultat d'une commande ​ne garantit pas qu'​elle soit entièrement exécutée. Si vous n'​obtenez pas de message d'​erreur, ​la mise à jour de la page peut demander ​quelques ​secondes supplémentaires.\\ 
-Relancer une commande ou demander son annulation alors qu'​elle est en cours d'​exécution peut rendre le composant Nova instable et empêcher la suppression de l'​action demandée ou laisser des entrées indésirables dans la base de données. ​Exemplesl'​atribution d'une adresse IP publique ou la création ​d'un disque virtuel.\\+Relancer une commande ou demander son annulation alors qu'​elle est en cours d'​exécution peut rendre le composant Nova instable et empêcher la suppression de l'​action demandée ou laisser des entrées indésirables dans la base de données. ​Exemplelors de la suppression ​d'un disque virtuel, les données sont supprimées avant que l'​espace ne soit libéré.\\
 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 de: +<note important>​L'​url par défaut est http://​IP/​horizon</​note>​ 
-//Username //:​ admin ​   //​Password//:​ 2BSpUaPV ​   pour le compte d'​administration.\\ + 
-Les comptes qui ont pour role "​admin"​ ont accès ​l'​interface d'​administration sur le Dashboard, ainsi qu'leur(s) projet(s). Les roles "​Member"​ n'ont accès qu'leur(s) projet(s).+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]].\\ 
 +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 ​de 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 Madriva. D'​autres systèmes peuvent aussi servir comme FreeBSD ​et bien sûr 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, un serveur SSH et Curl. Pour FreeBSD ou Windows, prévoyez l'​installation du driver ​Virtio.(driver Windows signé disponible [[http://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 a chaque changement.\\ +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 "touch /​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.
  
 <​file>​ <​file>​
Ligne 1183: 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 1190: Ligne 1297:
  
 ---- ----
-//​Contributeurs principaux : [[utilisateurs:​xavier4811|Xavier4811]].//​+//​Contributeurs principaux :​[[utilisateurs:​xavier4811|Xavier4811]].//​ 
  • openstack.1342424748.txt.gz
  • Dernière modification: Le 16/07/2012, 09:45
  • par fabux