Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
wiki:documentation:avance [2018/07/10 12:19] friscourt-s [Adapter une image générique] |
— (Version actuelle) | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ====== Utilisation avancée ====== | ||
- | |||
- | Ce guide est à destination des utilisateurs avancés et aborde des sujets plus complexes, qui ne seront pas accessibles aux utilisateurs les plus basiques. | ||
- | |||
- | ===== Manipuler les ressources en ligne de commande ===== | ||
- | |||
- | Opennebula offre une API de type REST, accessible en http (http:// | ||
- | |||
- | ==== installation de la CLI ==== | ||
- | |||
- | Il faut tout d' | ||
- | |||
- | <cli prompt=" | ||
- | abelard-a@UN-5CG54835CN: | ||
- | deb http:// | ||
- | </ | ||
- | |||
- | Puis il faut importer la clé de signature du repository : | ||
- | |||
- | <cli> | ||
- | root@UN-5CG54835CN: | ||
- | gpg --keyserver pool.sks-keyservers.net --recv-key 592F7F0585E16EBF | ||
- | gpg: requesting key 85E16EBF from hkp server pool.sks-keyservers.net | ||
- | gpg: key 85E16EBF: public key " | ||
- | gpg: no ultimately trusted keys found | ||
- | gpg: Total number processed: 1 | ||
- | gpg: | ||
- | root@UN-5CG54835CN: | ||
- | OK | ||
- | </ | ||
- | |||
- | Et enfin, il faut installer le paquet '' | ||
- | |||
- | <cli> | ||
- | abelard-a@UN-5CG54835CN: | ||
- | Reading package lists... Done | ||
- | Building dependency tree | ||
- | Reading state information... Done | ||
- | The following package was automatically installed and is no longer required: | ||
- | libjpeg62: | ||
- | Use 'sudo apt autoremove' | ||
- | The following NEW packages will be installed: | ||
- | opennebula-tools | ||
- | 0 upgraded, 1 newly installed, 0 to remove and 152 not upgraded. | ||
- | Need to get 108 kB of archives. | ||
- | After this operation, 677 kB of additional disk space will be used. | ||
- | WARNING: The following packages cannot be authenticated! | ||
- | opennebula-tools | ||
- | Install these packages without verification? | ||
- | Get:1 http:// | ||
- | Fetched 108 kB in 0s (111 kB/s) | ||
- | Selecting previously unselected package opennebula-tools. | ||
- | (Reading database ... 329741 files and directories currently installed.) | ||
- | Preparing to unpack .../ | ||
- | Unpacking opennebula-tools (5.4.1-1) ... | ||
- | Processing triggers for man-db (2.7.5-1) ... | ||
- | Setting up opennebula-tools (5.4.1-1) ... | ||
- | Please remember to execute / | ||
- | required gems. | ||
- | |||
- | </ | ||
- | |||
- | Il est désormais possible d' | ||
- | |||
- | <cli> | ||
- | abelard-a@UN-5CG54835CN: | ||
- | ID NAME GROUP AUTH | ||
- | 5 abelard-a | ||
- | </ | ||
- | |||
- | <alert type=" | ||
- | Si la commande oneuser ne parvient pas à joindre la plateforme IaaS, veuillez contacter l' | ||
- | </ | ||
- | |||
- | Devoir préciser ses identifiants à chaque commande est fastidieux et contre-productif. Il est donc nécessaire de configurer son poste pour ne pas avoir à les saisir systématiquement. | ||
- | |||
- | ==== Configuration de la CLI ==== | ||
- | |||
- | Bien qu'il soit possible de préciser l'url de gestion de la CLI (" | ||
- | |||
- | <cli> | ||
- | abelard-a@UN-5CG54835CN: | ||
- | </ | ||
- | |||
- | Il faut ensuite générer un token qui permettra de ne pas avoir à saisir ses identifiants à chaque commande (il faut saisir son identifiant même s'il est précisé dans la ligne de commande) : | ||
- | |||
- | <cli> | ||
- | abelard-a@UN-5CG54835CN: | ||
- | Password: | ||
- | Authentication Token is: | ||
- | abelard-a: | ||
- | </ | ||
- | |||
- | Un nouveau token est créé et le fichier ~/ | ||
- | |||
- | Il est désormais possible de manipuler ses VM sans préciser d' | ||
- | |||
- | <cli> | ||
- | abelard-a@UN-5CG54835CN: | ||
- | ID USER | ||
- | 1111 abelard- DSI-IRTS test runn 0.0 497.4M iaas-vm-1. | ||
- | </ | ||
- | |||
- | L' | ||
- | ==== instancier une VM ==== | ||
- | |||
- | Il est possible et très utile de pouvoir instancier une VM à partir d'un modèle en ligne de commande. Cela se fait avec la commande '' | ||
- | |||
- | Pour obtenir l'id du modèle à utiliser, il faut préalablement lister les modèles disponibles : | ||
- | |||
- | <cli> | ||
- | abelard-a@UN-5CG54835CN:/ | ||
- | ID USER GROUP | ||
- | 2 oneadmin | ||
- | 30 oneadmin | ||
- | 31 oneadmin | ||
- | 56 oneadmin | ||
- | 65 oneadmin | ||
- | 66 feufeu-jc | ||
- | 71 oneadmin | ||
- | 73 oneadmin | ||
- | </ | ||
- | |||
- | La commande '' | ||
- | |||
- | <cli> | ||
- | abelard-a@UN-5CG54835CN: | ||
- | ID USER GROUP NAME CLUSTERS | ||
- | 66 oneadmin | ||
- | 67 oneadmin | ||
- | </ | ||
- | |||
- | Nous allons instancier un nouveau serveur web. Nous allons donc utiliser le patron " | ||
- | |||
- | <cli> | ||
- | abelard-a@UN-5CG54835CN:/ | ||
- | There are some parameters that require user input. Use the string << | ||
- | * (ROOT_PASSWORD) root password | ||
- | Password: | ||
- | * (SET_HOSTNAME) nom de l' | ||
- | toto | ||
- | * (USER_PASSWORD) mot de passe de l' | ||
- | Password: | ||
- | VM ID: 1142 | ||
- | </ | ||
- | |||
- | Notre nouvelle VM est désormais démarrée : | ||
- | |||
- | <cli> | ||
- | abelard-a@UN-5CG54835CN:/ | ||
- | ID USER | ||
- | 1111 abelard- DSI-IRTS test runn 0.0 497.4M iaas-vm-1. | ||
- | 1147 abelard- DSI-IRTS é en main-1142 | ||
- | </ | ||
- | |||
- | ==== Voir les informations d'une VM ==== | ||
- | |||
- | La commande onevm permet de manipuler vos VM, notamment d' | ||
- | |||
- | <cli> | ||
- | abelard-a@UN-5CG54835CN: | ||
- | VIRTUAL MACHINE 1147 INFORMATION | ||
- | ID : 1147 | ||
- | NAME : Serveur LAMP (linux, apache, mysql, php) clé en main-1147 | ||
- | USER : abelard-a | ||
- | GROUP : DSI-IRTS | ||
- | STATE : ACTIVE | ||
- | LCM_STATE | ||
- | RESCHED | ||
- | HOST : iaas-vm-5.u07.univ-nantes.prive | ||
- | CLUSTER ID : 0 | ||
- | CLUSTER | ||
- | START TIME : 03/06 12: | ||
- | END TIME : - | ||
- | DEPLOY ID : one-1147 | ||
- | |||
- | VIRTUAL MACHINE MONITORING | ||
- | |||
- | PERMISSIONS | ||
- | OWNER : um- | ||
- | GROUP : --- | ||
- | OTHER : --- | ||
- | |||
- | VM DISKS | ||
- | ID DATASTORE | ||
- | 0 ceph-image vda debian8-univnantes-v7-lamp-v9 | ||
- | 1 - hda CONTEXT | ||
- | |||
- | VM NICS | ||
- | ID NETWORK | ||
- | 0 IRTS_INTRA | ||
- | |||
- | SECURITY | ||
- | |||
- | NIC_ID NETWORK | ||
- | 0 IRTS_INTRA | ||
- | |||
- | SECURITY GROUP | ||
- | ID NAME VNET START | ||
- | 0 Ssh et ping inbound | ||
- | 0 Ssh et ping inbound | ||
- | 0 Ssh et ping outbound UDP | ||
- | 0 Ssh et ping outbound UDP | ||
- | 0 Ssh et ping outbound UDP | ||
- | 0 Ssh et ping outbound TCP | ||
- | 0 Ssh et ping outbound TCP | ||
- | 0 Ssh et ping outbound TCP | ||
- | |||
- | VIRTUAL MACHINE HISTORY | ||
- | SEQ UID REQ | ||
- | 0 - - | ||
- | |||
- | USER TEMPLATE | ||
- | DESCRIPTION=" | ||
- | 20160623: image v8 : sshd PermitRootLogin: | ||
- | INPUTS_ORDER=" | ||
- | LABELS=" | ||
- | LOGO=" | ||
- | ROOT_PASSWORD=" | ||
- | SET_HOSTNAME=" | ||
- | USER_INPUTS=[ | ||
- | ROOT_PASSWORD=" | ||
- | SET_HOSTNAME=" | ||
- | USER_PASSWORD=" | ||
- | USER_PASSWORD=" | ||
- | |||
- | VIRTUAL MACHINE TEMPLATE | ||
- | AUTOMATIC_DS_REQUIREMENTS=" | ||
- | AUTOMATIC_REQUIREMENTS=" | ||
- | CONTEXT=[ | ||
- | DISK_ID=" | ||
- | ETH0_CONTEXT_FORCE_IPV4="", | ||
- | ETH0_DNS=" | ||
- | ETH0_GATEWAY=" | ||
- | ETH0_GATEWAY6="", | ||
- | ETH0_IP=" | ||
- | ETH0_IP6="", | ||
- | ETH0_IP6_PREFIX_LENGTH="", | ||
- | ETH0_IP6_ULA="", | ||
- | ETH0_MAC=" | ||
- | ETH0_MASK=" | ||
- | ETH0_MTU="", | ||
- | ETH0_NETWORK="", | ||
- | ETH0_SEARCH_DOMAIN="", | ||
- | ETH0_VLAN_ID=" | ||
- | ETH0_VROUTER_IP="", | ||
- | ETH0_VROUTER_IP6="", | ||
- | ETH0_VROUTER_MANAGEMENT="", | ||
- | FILES_DS="/ | ||
- | INIT_SCRIPTS=" | ||
- | NETWORK=" | ||
- | ONEGATE_ENDPOINT=" | ||
- | ROOT_PASSWORD=" | ||
- | SET_HOSTNAME=" | ||
- | SSH_PUBLIC_KEY=" | ||
- | TARGET=" | ||
- | TOKEN=" | ||
- | USER_PASSWORD=" | ||
- | VMID=" | ||
- | CPU=" | ||
- | CPU_COST=" | ||
- | CREATED_BY=" | ||
- | GRAPHICS=[ | ||
- | KEYMAP=" | ||
- | LISTEN=" | ||
- | PORT=" | ||
- | TYPE=" | ||
- | MEMORY=" | ||
- | MEMORY_COST=" | ||
- | OS=[ | ||
- | ARCH=" | ||
- | BOOT="" | ||
- | TEMPLATE_ID=" | ||
- | VMID=" | ||
- | </ | ||
- | ==== Arrêter ou démarrer une VM ==== | ||
- | |||
- | Une fois instanciée, | ||
- | |||
- | <cli> | ||
- | abelard-a@UN-5CG54835CN:/ | ||
- | abelard-a@UN-5CG54835CN:/ | ||
- | ID USER | ||
- | 1111 abelard- DSI-IRTS test runn 0.0 497.4M iaas-vm-1. | ||
- | 1147 abelard- DSI-IRTS é en main-1142 | ||
- | </ | ||
- | |||
- | |||
- | Pour démarrer une VM arrêtée : | ||
- | |||
- | <cli> | ||
- | abelard-a@UN-5CG54835CN:/ | ||
- | abelard-a@UN-5CG54835CN:/ | ||
- | ID USER | ||
- | 1111 abelard- DSI-IRTS test runn 0.0 497.4M iaas-vm-1. | ||
- | 1147 abelard- DSI-IRTS é en main-1142 | ||
- | |||
- | </ | ||
- | |||
- | ==== Faire un snapshot de disque ==== | ||
- | |||
- | Il est très intéressant de pouvoir faire des snapshots de disque en guise de sauvegarde. L' | ||
- | |||
- | <cli> | ||
- | abelard-a@UN-5CG54835CN: | ||
- | ... | ||
- | VM DISKS | ||
- | ID DATASTORE | ||
- | 0 ceph-image vda debian8-univnantes-v7-lamp-v9 | ||
- | 1 - hda CONTEXT | ||
- | ... | ||
- | abelard-a@UN-5CG54835CN: | ||
- | abelard-a@UN-5CG54835CN: | ||
- | ... | ||
- | VM DISK SNAPSHOTS | ||
- | AC ID DISK PARENT | ||
- | => | ||
- | ... | ||
- | </ | ||
- | |||
- | ==== Supprimer un snapshot de disque ==== | ||
- | |||
- | Pour supprimer un snapshot, '' | ||
- | |||
- | <cli> | ||
- | abelard-a@UN-5CG54835CN: | ||
- | </ | ||
- | |||
- | <alert type=" | ||
- | **Il est particulièrement important de supprimer les snapshots les plus anciens. En effet, un grand nombre de snapshots réduira drastiquement les performances de votre VM !** | ||
- | </ | ||
- | ===== Création d'un nouveau modèle ===== | ||
- | |||
- | Il peut être utile de créer un nouveau modèle de VM, afin de déployer des instances spécifiquement taillées pour vos besoins. Le principe d'un modèle est de proposer une base fixe (OS + applicatifs déjà installés), | ||
- | |||
- | Pour ce faire, il faut disposer d'une image (un " | ||
- | |||
- | Pour cet exemple, nous allons créer un modèle de serveur de fichiers avec samba. Pour obtenir un serveur de fichier utilisable, il faut donc prévoir : | ||
- | * d' | ||
- | * de le configurer (utilisation de ldap ? Créer les partages par défaut ?) | ||
- | * de configurer l'OS (mot de passe root, hostname, etc) | ||
- | |||
- | Nous allons donc repartir de l' | ||
- | |||
- | Les étapes que nous allons suivre sont les suivantes : | ||
- | - créer notre patron à partir de l' | ||
- | - créer une nouvelle image à partir de notre patron | ||
- | - créer un modèle | ||
- | |||
- | ==== Adapter une image générique ==== | ||
- | |||
- | Le plus simple pour adapter une image existante est d' | ||
- | |||
- | L' | ||
- | |||
- | Il est possible à ce stade de customiser autant que possible le futur patron, en préconfigurant par exemple le serveur samba pour proposer des partages par défaut, ou en supprimant toute trace de cette préconfiguration (suppression des logs, de l' | ||
- | |||
- | Une fois notre VM configurée comme prévue, il est nécessaire de l’arrêter **proprement** en utilisant la commande " | ||
- | |||
- | Nous allons donc maintenant procéder à la création de l' | ||
- | |||
- | {{ : | ||
- | |||
- | Il faut ensuite donner un nom à notre nouvelle image : | ||
- | |||
- | {{ : | ||
- | |||
- | La nouvelle image apparaît désormais dans la liste des images disponibles, | ||
- | |||
- | {{ : | ||
- | |||
- | Nous allons donc passer à l' | ||
- | |||
- | ==== Création du modèle ==== | ||
- | |||
- | La création d'un nouveau modèle se fait dans le menu " | ||
- | {{ : | ||
- | |||
- | L' | ||
- | |||
- | Tout d' | ||
- | - le nom : " | ||
- | - la description : " | ||
- | - La taille de la mémoire allouée à la VM par defaut: 2Go. | ||
- | - Le nombre de CPU : 0.5 | ||
- | - le nom de CPU virtuels : 2 | ||
- | - l' | ||
- | |||
- | Les informations concernant le stockage: | ||
- | - l' | ||
- | - un disque de donnée: il est possible de rajouter un disque vierge, par exemple pour séparer le volume de données du volume de OS. Il faut pour cela cliqeur sur le " | ||
- | |||
- | Les informations concernant le réseau: | ||
- | - le nombre d' | ||
- | |||
- | Une fois ces informations saisie, il faut rengistrer le nouveau patron en cliquant sur le bouton " | ||
- | |||
- | Le nouveau modèle est désormais disponible: | ||
- | |||
- | {{ : | ||
- | |||
- | Il est donc possible d' | ||
- | |||
- | ==== Contextualisation ==== | ||
- | |||
- | La contextualiation permet d' | ||
- | |||
- | La contextualisation se configurer dans l' | ||
- | |||
- | {{ : | ||
- | |||
- | === Contextualisation SSH === | ||
- | |||
- | Il est possible d' | ||
- | |||
- | Pour en savoir plus sur les clés SSH: https:// | ||
- | |||
- | === Execution d'un script de démarrage === | ||
- | |||
- | Au démarrage de la VM il est possible de lancer un script. Ce script sera lancer à chaque démarrage. Par exemple, faire une image à jour automatique : | ||
- | <code bash> | ||
- | apt-get update && DEBIAN_FRONTEND=noninteractive apt-get -y dist-upgrade --force-yes -o Dpkg:: | ||
- | </ | ||
- | |||
- | <alert type=" | ||
- | **Attention!** Le script de démarrage est executé à __chaque__ démarrage. Ainsi si la contextualisation doit initialiser des services, il faut toujours vérifier que cette initialisation n'a pas déjà été faite! Afin de ne pas perdre de données après un redémarrage. | ||
- | </ | ||
- | |||
- | Il est aussi possible de configurer des entrées utilisateurs | ||
- | |||
- | === Entrées utilisateurs === | ||
- | |||
- | Les entrées utilisateurs sont des champs à saisir au moment de l' | ||
- | |||
- | Une entrée utilisateur peut être facultative ou obligatoire. Les types de champs possibles sont les suivants: | ||
- | - **texte**, pour saisir du texte sur plusieurs lignes | ||
- | - **texte (base 64)**, pour saisir un hash64 | ||
- | - **mot de passe**, pour saisir un mot de passe, champs sur une ligne qui n' | ||
- | - **nombre**, pour saisir un nombre entier | ||
- | - **nombre (réel)**, pour saisir un nombre à virgule | ||
- | - **plage**, pour saisir un une valeur comprise entre 2 bornes | ||
- | - **interval**, | ||
- | - **liste**, une liste déroulante | ||
- | - **booléen**, | ||
- | |||
- | Ces champs permettent de passer des variables au script de démarrage. | ||
- | |||
- | Par exemple, reprenons le cas du champs de saisie du mot de passe root. Il faut créer un champs de type "mot de passe", | ||
- | |||
- | {{ : | ||
- | |||
- | Lors de l' | ||
- | {{ : | ||
- | |||
- | Il faut toutefois utiliser la variable $ROOT_PASSWORD dans notre script de démarrage afin de modifier le compte root du serveur: | ||
- | <code bash> | ||
- | echo -e " | ||
- | </ | ||
- | |||
- | et donc dans l' | ||
- | |||
- | {{ : | ||
- | |||
- | Notre modèle est désormais contextualisé. Du moins pour la partie mot de passe root. | ||
- | |||
- | ===== Démarrer une VM vierge pour installation à partir d'un support ===== | ||
- | |||
- | Il est parfois nécessaire de faire une installation d'OS a partir d'un support d' | ||
- | |||
- | Pour ce faire,il faut procéder en plusieurs étapes: | ||
- | - uploader le support d' | ||
- | - créer une VM vierge et y lier le CDROM/DVD | ||
- | - procéder à l' | ||
- | |||
- | ==== uploader le support d' | ||
- | |||
- | Avant de pouvoir booter sur le CD ou DVD d' | ||
- | |||
- | {{ : | ||
- | |||
- | * **le nom** est le nom de l' | ||
- | * **le type de l' | ||
- | * **L' | ||
- | * **Le chemin d' | ||
- | |||
- | <alert type=" | ||
- | **Attention!** Il ne faut pas mettre de caractères spéciaux dans le nom de l' | ||
- | </ | ||
- | |||
- | Une fois ces informations saisies, il faut cliquer sur le bouton " | ||
- | |||
- | {{ : | ||
- | |||
- | ==== Créer une VM vierge pour y installer l'OS ==== | ||
- | |||
- | Maintenant que notre CD/DVD est disponible, nous devons créer une VM vierge et lui lier le support d' | ||
- | |||
- | Nous fournissons un patron " | ||
- | |||
- | === Instanciation de notre VM vierge === | ||
- | |||
- | {{ : | ||
- | |||
- | <alert type=" | ||
- | Ne pas oublier de préciser la taille du disque dur! | ||
- | </ | ||
- | |||
- | Notre VM démarre mais ne peut booter puisque le disque est vierge: | ||
- | |||
- | {{ : | ||
- | |||
- | Il faut donc lui associer le support d' | ||
- | |||
- | === attacher le support d' | ||
- | |||
- | Notre VM est instanciée mais elle n'a pas accès à notre support d' | ||
- | |||
- | **Il faut commencer par arrêter notre VM. En l' | ||
- | |||
- | Une fois notre VM arreter, il est possible de procéder à l' | ||
- | |||
- | {{ : | ||
- | |||
- | {{ : | ||
- | |||
- | Notre VM possède désormais un disque dur vierge et un CDROM d' | ||
- | |||
- | {{ : | ||
- | |||
- | < | ||
- | Notre installation se faisant à partir du support d' | ||
- | </ | ||
- | |||
- | |||
- | === Post installation === | ||
- | |||
- | Contrairement aux VM instanciées à partir d'un modèle préinstallé, | ||
- | |||
- | https:// | ||
- | |||
- | |||
- | ==== Cas particulier de Windows ==== | ||
- | |||
- | L' | ||
- | |||
- | {{ : | ||
- | |||
- | <alert type=" | ||
- | Notre patron "Notre patron "VM Machine vierge" | ||
- | </ | ||
- | |||
- | === Installation === | ||
- | |||
- | Une autre spécificité est que Windows nécessite des pilotes particuliers pour détecter le disque dur au moment de l' | ||
- | |||
- | Avant de pouvoir instancier une VM pour installer windows, il faudra donc y attacher, en plus du support d' | ||
- | |||
- | {{ : | ||
- | |||
- | <alert type=" | ||
- | **Attention!** l' | ||
- | </ | ||
- | |||
- | Le programme d' | ||
- | |||
- | {{ : | ||
- | |||
- | Vous serez donc amené à charger un pilote à partir du CDROM de pilotes attaché à la VM. Il faudra donc pointer jusqu' | ||
- | |||
- | {{ : | ||
- | |||
- | En cliquant sur '' | ||
- | |||
- | {{ : | ||
- | |||
- | Et l' | ||
- | |||
- | === Configuration === | ||
- | |||
- | Une fois l' | ||
- | |||
- | <text type=" | ||
- | |||
- | === Contextualisation === | ||
- | |||
- | La contextualisation est aussi particulière avec Windows. Il faut télécharger l' | ||
- | |||
- | Il faudra aussi télécharger les scripts suivants: | ||
- | |||
- | * https:// | ||
- | * https:// | ||
- | |||
- | Et les déposer à la racine du disque C: | ||
- | |||
- | ===== Activer le menu de selection du disque de boot ===== | ||
- | |||
- | Dans la configuration de la VM, dans l' | ||
- | < | ||
- | RAW = [ | ||
- | TYPE = \" | ||
- | DATA = \"< | ||
- | ] | ||
- | </ | ||
- | |||
- | |||
- | |||