Différences entre versions de « Comment creer un modele compatible Cloud Ikoula »

De Ikoula Wiki
Jump to navigation Jump to search
Ligne 1 : Ligne 1 :
 
La procédure ci-dessous explique comment créer un modèle compatible avec Cloud Ikoula à partir d'une installation from scratch (à partir d'une iso).
 
La procédure ci-dessous explique comment créer un modèle compatible avec Cloud Ikoula à partir d'une installation from scratch (à partir d'une iso).
 +
  
 
Dans notre exemple, nous allons créer une image GNU/Linux Fedora 22.
 
Dans notre exemple, nous allons créer une image GNU/Linux Fedora 22.
 +
  
 
Connectez-vous à l'interface Cloud Ikoula :
 
Connectez-vous à l'interface Cloud Ikoula :
 +
  
 
https://cloudstack.ikoula.com/client/
 
https://cloudstack.ikoula.com/client/
 +
  
 
Cliquez sur "Modèles" dans le menu gauche :
 
Cliquez sur "Modèles" dans le menu gauche :
 +
  
 
[[Fichier:Create_image_cloudikoula_01.png]]
 
[[Fichier:Create_image_cloudikoula_01.png]]
 +
  
 
Sélectionnez la vue "ISO"  :
 
Sélectionnez la vue "ISO"  :
 +
  
 
[[Fichier:Create_image_cloudikoula_02.png]]
 
[[Fichier:Create_image_cloudikoula_02.png]]
 +
  
 
Cliquez sur le bouton "Enregistrer ISO" :
 
Cliquez sur le bouton "Enregistrer ISO" :
 +
  
 
[[Fichier:Create_image_cloudikoula_03.png]]
 
[[Fichier:Create_image_cloudikoula_03.png]]
 +
  
 
Puis renseignez les champs :
 
Puis renseignez les champs :
 +
  
 
[[Fichier:Create_image_cloudikoula_04.png]]  
 
[[Fichier:Create_image_cloudikoula_04.png]]  
 +
  
 
1: Indiquez le Nom que vous souhaitez pour votre image
 
1: Indiquez le Nom que vous souhaitez pour votre image
Ligne 30 : Ligne 42 :
 
6: Indiquez le type de système de votre ISO, si votre système et la version de celui-ci est dans la liste sélectionnez-la sinon choisissez un des type "Other xxx" le plus adapté. Dans notre cas, Fedora 22 n'était pas disponible dans la liste nous avons donc sélectionné "Other Linux (64-bit)".
 
6: Indiquez le type de système de votre ISO, si votre système et la version de celui-ci est dans la liste sélectionnez-la sinon choisissez un des type "Other xxx" le plus adapté. Dans notre cas, Fedora 22 n'était pas disponible dans la liste nous avons donc sélectionné "Other Linux (64-bit)".
 
7: Cochez cette cas si vous souhaitez que votre ISO puisse être télécharger une fois créée
 
7: Cochez cette cas si vous souhaitez que votre ISO puisse être télécharger une fois créée
 +
  
 
Une fois votre ISO enregistrée, patentiez jusqu'à ça soit en statut "Prêt : Yes" :
 
Une fois votre ISO enregistrée, patentiez jusqu'à ça soit en statut "Prêt : Yes" :
 +
  
 
[[Fichier:Create_image_cloudikoula_05.png]]
 
[[Fichier:Create_image_cloudikoula_05.png]]
 +
  
 
Cliquez sur "Instances" dans le menu gauche :
 
Cliquez sur "Instances" dans le menu gauche :
 +
  
 
[[Fichier:Create_image_cloudikoula_06.png]]
 
[[Fichier:Create_image_cloudikoula_06.png]]
 +
  
 
Cliquez sur le bouton "Ajouter une instance" :
 
Cliquez sur le bouton "Ajouter une instance" :
 +
  
 
[[Fichier:Create_image_cloudikoula_07.png]]
 
[[Fichier:Create_image_cloudikoula_07.png]]
 +
  
 
Sélectionnez la zone de déploiement de votre instance :
 
Sélectionnez la zone de déploiement de votre instance :
 +
  
 
[[Fichier:Create_image_cloudikoula_08.png]]
 
[[Fichier:Create_image_cloudikoula_08.png]]
 +
  
 
Sélectionner ISO puis cliquez sur "Suivant"
 
Sélectionner ISO puis cliquez sur "Suivant"
 +
  
 
[[Fichier:Create_image_cloudikoula_09.png]]
 
[[Fichier:Create_image_cloudikoula_09.png]]
 +
  
 
Cliquez sur l'onglet "Mes ISOs" et cochez l'iso que vous venez de créer :
 
Cliquez sur l'onglet "Mes ISOs" et cochez l'iso que vous venez de créer :
 +
  
 
[[Fichier:Create_image_cloudikoula_10.png]]
 
[[Fichier:Create_image_cloudikoula_10.png]]
 +
  
 
Sélectionnez l'offre de calcul de votre choix puis cliquez sur "Suivant"  
 
Sélectionnez l'offre de calcul de votre choix puis cliquez sur "Suivant"  
 +
  
 
Faites glissez le curseur pour obtenir la taille de disque (en GB) que vous souhaitez pour votre instance et donc pour votre futur modèle ou saisissez la taille (en GB) manuellement dans le champs puis validez avec le touche "Entrée" de votre clavier pour que la taille choisie apparaisse dans la description au dessus :
 
Faites glissez le curseur pour obtenir la taille de disque (en GB) que vous souhaitez pour votre instance et donc pour votre futur modèle ou saisissez la taille (en GB) manuellement dans le champs puis validez avec le touche "Entrée" de votre clavier pour que la taille choisie apparaisse dans la description au dessus :
 +
  
 
[[Fichier:Create_image_cloudikoula_11.png]]
 
[[Fichier:Create_image_cloudikoula_11.png]]
 +
  
 
Cliquez sur "Suivant"
 
Cliquez sur "Suivant"
 +
  
 
Poursuivez les étapes classiques de déploiement d'une instance (Affinité, Réseau, Nom de l'instance) en cliquant sur "Suivant" à chaque fois pour valider et enfin sur "Démarrer VM"
 
Poursuivez les étapes classiques de déploiement d'une instance (Affinité, Réseau, Nom de l'instance) en cliquant sur "Suivant" à chaque fois pour valider et enfin sur "Démarrer VM"
 +
  
 
Une fois votre instance déployée, cliquez sur le nom de celle-ci (dans le menu Instances) :
 
Une fois votre instance déployée, cliquez sur le nom de celle-ci (dans le menu Instances) :
 +
  
 
[[Fichier:Create_image_cloudikoula_12.png]]
 
[[Fichier:Create_image_cloudikoula_12.png]]
 +
  
 
Cliquez sur le bouton "Voir la console" (notez que vous voyez votre image ISO attachée à votre instance dans les détails de celle-ci) :
 
Cliquez sur le bouton "Voir la console" (notez que vous voyez votre image ISO attachée à votre instance dans les détails de celle-ci) :
 +
  
 
[[Fichier:Create_image_cloudikoula_13.png]]
 
[[Fichier:Create_image_cloudikoula_13.png]]
 +
  
 
Une nouvelle fenêtre pop-up de votre navigateur va s'ouvrir (si ce n'est pas le cas vérifier que vous le bloquez pas les pop-up pour l'interface Cloud Ikoula). Cette fenêtre est en fait une console graphique web type VNC/KVM (écran/clavier/souris) de votre instance qui va vous permettre d'installer le système sur le disque de votre instance :
 
Une nouvelle fenêtre pop-up de votre navigateur va s'ouvrir (si ce n'est pas le cas vérifier que vous le bloquez pas les pop-up pour l'interface Cloud Ikoula). Cette fenêtre est en fait une console graphique web type VNC/KVM (écran/clavier/souris) de votre instance qui va vous permettre d'installer le système sur le disque de votre instance :
 +
  
 
[[Fichier:Create_image_cloudikoula_14.png|700px]]
 
[[Fichier:Create_image_cloudikoula_14.png|700px]]
 +
  
 
Poursuivez l'installation de votre système avec le partitionnement et la configuration que vous souhaitez (installez le paquet SSH si cela vous est demandé), notez toutefois que le clavier n'est pas de type AZERTY (attention donc à la définition du mot de passe).
 
Poursuivez l'installation de votre système avec le partitionnement et la configuration que vous souhaitez (installez le paquet SSH si cela vous est demandé), notez toutefois que le clavier n'est pas de type AZERTY (attention donc à la définition du mot de passe).
 +
  
 
A la fin de l'installation quand cela vous est demandé cliquez sur Redémarrer, stopper votre instance afin de détacher l'ISO
 
A la fin de l'installation quand cela vous est demandé cliquez sur Redémarrer, stopper votre instance afin de détacher l'ISO
 +
  
 
Une fois votre instance stoppée, cliquez sur le nom de votre instance puis sur le bouton "Détacher l'image ISO" :
 
Une fois votre instance stoppée, cliquez sur le nom de votre instance puis sur le bouton "Détacher l'image ISO" :
 +
  
 
[[Fichier:Create_image_cloudikoula_15.png]]
 
[[Fichier:Create_image_cloudikoula_15.png]]
 +
  
 
Une fois l'iso détachée de votre instance, vous pouvez à nouveau démarrer celle-ci afin de démarrer sur le système que vous venez d'installer sur le disque (ROOTDISK) de cette dernière.
 
Une fois l'iso détachée de votre instance, vous pouvez à nouveau démarrer celle-ci afin de démarrer sur le système que vous venez d'installer sur le disque (ROOTDISK) de cette dernière.
 +
  
 
[[Fichier:Create_image_cloudikoula_16.png]]
 
[[Fichier:Create_image_cloudikoula_16.png]]
 +
  
 
Cliquez sur le bouton "Voir la console" pour voir votre système démarré :
 
Cliquez sur le bouton "Voir la console" pour voir votre système démarré :
 +
  
 
[[Fichier:Create_image_cloudikoula_17.png]]
 
[[Fichier:Create_image_cloudikoula_17.png]]
 +
  
 
Connectez-vous en SSH à votre instance (vous devez avoir créer une règle parefeu et de redirection de port si votre instance est en zone/réseau avancée  ou une règle entrante de groupe de sécurité si elle est en zone basic et ne pas avoir de règles iptables sur le système de votre instance) pour terminer la configuration du système afin de le rendre compatible avec le Cloud Ikoula.
 
Connectez-vous en SSH à votre instance (vous devez avoir créer une règle parefeu et de redirection de port si votre instance est en zone/réseau avancée  ou une règle entrante de groupe de sécurité si elle est en zone basic et ne pas avoir de règles iptables sur le système de votre instance) pour terminer la configuration du système afin de le rendre compatible avec le Cloud Ikoula.
 +
  
 
S'agissant d'un context virtuel, nous nous sommes appuyés sur un partitionnement avec LVM (volumes logiques racine et swap) afin de pouvoir aisément redimensionner nos partitions en cas de redimensionnement ou d'ajout d'un disque virtuel :
 
S'agissant d'un context virtuel, nous nous sommes appuyés sur un partitionnement avec LVM (volumes logiques racine et swap) afin de pouvoir aisément redimensionner nos partitions en cas de redimensionnement ou d'ajout d'un disque virtuel :
 +
  
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
Ligne 116 : Ligne 162 :
 
Taille de secteur (logique / physique) : 512 octets / 512 octets
 
Taille de secteur (logique / physique) : 512 octets / 512 octets
 
taille d'E/S (minimale / optimale) : 512 octets / 512 octets
 
taille d'E/S (minimale / optimale) : 512 octets / 512 octets
 
  
 
Disque /dev/mapper/vg01-swap : 1 GiB, 1073741824 octets, 2097152 secteurs
 
Disque /dev/mapper/vg01-swap : 1 GiB, 1073741824 octets, 2097152 secteurs
Ligne 123 : Ligne 168 :
 
taille d'E/S (minimale / optimale) : 512 octets / 512 octets
 
taille d'E/S (minimale / optimale) : 512 octets / 512 octets
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
  
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
Ligne 136 : Ligne 182 :
 
   swap vg01 -wi-ao----  1,00g
 
   swap vg01 -wi-ao----  1,00g
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
  
 
Mettez à jour le système si nécessaire :
 
Mettez à jour le système si nécessaire :
 +
  
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 
[root@Fedora22x64 ~]# dnf upgrade
 
[root@Fedora22x64 ~]# dnf upgrade
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
  
 
Veuillez installer au minima les paquets qui pourront être utiles pour exécuter des commandes en paramètres "userdata" lors d'un déploiement  d'instance avec  votre modèle : vim, rsync, curl, wget, cloud-init, puppet, facter :
 
Veuillez installer au minima les paquets qui pourront être utiles pour exécuter des commandes en paramètres "userdata" lors d'un déploiement  d'instance avec  votre modèle : vim, rsync, curl, wget, cloud-init, puppet, facter :
 +
  
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
Ligne 157 : Ligne 207 :
 
wget.x86_64                                                                              1.16.3-1.fc22                                                                          @System
 
wget.x86_64                                                                              1.16.3-1.fc22                                                                          @System
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
  
 
- Ajouter la ligne "datasource_list: ['CloudStack']" en début du fichier de configuration /etc/cloud/cloud.cfg (si vous avez installé cloud-init comme indiqué ci-dessus) :
 
- Ajouter la ligne "datasource_list: ['CloudStack']" en début du fichier de configuration /etc/cloud/cloud.cfg (si vous avez installé cloud-init comme indiqué ci-dessus) :
 +
  
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
Ligne 164 : Ligne 216 :
 
datasource_list: ['CloudStack']
 
datasource_list: ['CloudStack']
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
  
 
Récupérez l'archive contenant les Xen tools sur notre mirroir :
 
Récupérez l'archive contenant les Xen tools sur notre mirroir :
 +
  
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
Ligne 180 : Ligne 234 :
 
2015-10-05 17:29:00 (1,14 MB/s) — « linux65.zip » sauvegardé [60474580/60474580]
 
2015-10-05 17:29:00 (1,14 MB/s) — « linux65.zip » sauvegardé [60474580/60474580]
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
  
 
Désarchivez-la dans le répertoire courant (nécessite que unzip soit installé) :
 
Désarchivez-la dans le répertoire courant (nécessite que unzip soit installé) :
 +
  
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
Ligne 210 : Ligne 266 :
 
[root@Fedora22x64 ~]#
 
[root@Fedora22x64 ~]#
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
  
 
Exécutez l'installation des Xen tools :
 
Exécutez l'installation des Xen tools :
 +
  
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
Ligne 233 : Ligne 291 :
 
You should now reboot this Virtual Machine.
 
You should now reboot this Virtual Machine.
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
  
 
Redémarrez votre instance comme ceci vous est demandé :
 
Redémarrez votre instance comme ceci vous est demandé :
 +
  
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 
[root@Fedora22x64 ~]# reboot
 
[root@Fedora22x64 ~]# reboot
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
  
 
Vérification :
 
Vérification :
 +
  
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
Ligne 259 : Ligne 321 :
 
oct. 05 19:11:06 Fedora22x64 xe-linux-distribution[586]: Starting xe daemon:  [  OK  ]
 
oct. 05 19:11:06 Fedora22x64 xe-linux-distribution[586]: Starting xe daemon:  [  OK  ]
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
  
 
Vous pouvez supprimer les fichiers de l'installation :
 
Vous pouvez supprimer les fichiers de l'installation :
 +
  
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
Ligne 266 : Ligne 330 :
 
[root@Fedora22x64 ~]#
 
[root@Fedora22x64 ~]#
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
  
 
Nous ajoutons les lignes suivantes dans /etc/sysctl.conf (on désactive IPv6 et on applique certaines optimisations):
 
Nous ajoutons les lignes suivantes dans /etc/sysctl.conf (on désactive IPv6 et on applique certaines optimisations):
 +
  
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
Ligne 293 : Ligne 359 :
 
vm.min_free_kbytes = 65535
 
vm.min_free_kbytes = 65535
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
  
 
Puis nous exécutons la commande "sysctl -p" :
 
Puis nous exécutons la commande "sysctl -p" :
 +
  
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
Ligne 312 : Ligne 380 :
 
vm.min_free_kbytes = 65535
 
vm.min_free_kbytes = 65535
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
  
 
On modifie la politique SELinux pour la passer de "enforcing" à "permissive" :
 
On modifie la politique SELinux pour la passer de "enforcing" à "permissive" :
 +
  
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
Ligne 329 : Ligne 399 :
 
Max kernel policy version:      29
 
Max kernel policy version:      29
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
  
 
Si votre système dispose de règles parefeu d'origine, veuillez stoppper et désactiver celui-ci, exemple dans notre cas :
 
Si votre système dispose de règles parefeu d'origine, veuillez stoppper et désactiver celui-ci, exemple dans notre cas :
 +
  
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
Ligne 338 : Ligne 410 :
 
Removed symlink /etc/systemd/system/basic.target.wants/firewalld.service.
 
Removed symlink /etc/systemd/system/basic.target.wants/firewalld.service.
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
  
 
On vérifie qu'il n'y a plus de règles de chargées :
 
On vérifie qu'il n'y a plus de règles de chargées :
 +
  
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
Ligne 352 : Ligne 426 :
 
  pkts bytes target    prot opt in    out    source              destination
 
  pkts bytes target    prot opt in    out    source              destination
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
  
 
Nous allons maintenant installer les scripts Cloud guests sur lesquels s'appuient les fonctionnalités de changement de mot de passe, de hostname, les userdata's, clés SSH :
 
Nous allons maintenant installer les scripts Cloud guests sur lesquels s'appuient les fonctionnalités de changement de mot de passe, de hostname, les userdata's, clés SSH :
 +
  
 
- Commencez par récupérer l'archive contenant les scripts sur notre mirroir (modifiez fedora22 par centos7, debian8 ou ubuntu1404 dans l'url suivante) :
 
- Commencez par récupérer l'archive contenant les scripts sur notre mirroir (modifiez fedora22 par centos7, debian8 ou ubuntu1404 dans l'url suivante) :
 +
  
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
Ligne 370 : Ligne 447 :
 
2015-10-06 09:57:13 (279 MB/s) — « cloud-set-guest-scripts.tar.gz » sauvegardé [2965/2965]
 
2015-10-06 09:57:13 (279 MB/s) — « cloud-set-guest-scripts.tar.gz » sauvegardé [2965/2965]
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
  
 
- Extraire le contenu :
 
- Extraire le contenu :
 +
  
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
Ligne 385 : Ligne 464 :
 
readme.txt
 
readme.txt
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
  
 
- Déplacez les fichiers .service dans /lib/systemd/system/ :
 
- Déplacez les fichiers .service dans /lib/systemd/system/ :
 +
  
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
Ligne 392 : Ligne 473 :
 
[root@Fedora22x64 ~]#
 
[root@Fedora22x64 ~]#
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
  
 
- Déplacez les autres fichiers dans /etc/init.d/
 
- Déplacez les autres fichiers dans /etc/init.d/
 +
  
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
Ligne 400 : Ligne 483 :
 
[root@Fedora22x64 ~]#
 
[root@Fedora22x64 ~]#
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
  
 
- On active nos unités de services :
 
- On active nos unités de services :
 +
  
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
Ligne 413 : Ligne 498 :
 
Created symlink from /etc/systemd/system/multi-user.target.wants/cloud-set-guest-userdata.service to /usr/lib/systemd/system/cloud-set-guest-userdata.service.
 
Created symlink from /etc/systemd/system/multi-user.target.wants/cloud-set-guest-userdata.service to /usr/lib/systemd/system/cloud-set-guest-userdata.service.
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
  
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
Ligne 421 : Ligne 507 :
 
   cloud-set-guest-userdata.service                                                          loaded active exited    CloudStack Set Guest Userdata
 
   cloud-set-guest-userdata.service                                                          loaded active exited    CloudStack Set Guest Userdata
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
  
 
- On purge le fichier de leases DHCP (chemin et nom de fichier à adapter au besoin) :
 
- On purge le fichier de leases DHCP (chemin et nom de fichier à adapter au besoin) :
 +
  
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 
[root@fedora22 ~]# > /var/lib/dhclient/dhclient.leases
 
[root@fedora22 ~]# > /var/lib/dhclient/dhclient.leases
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
  
 
- On purge les fichiers de logs principaux ainsi que l'historique de commande :
 
- On purge les fichiers de logs principaux ainsi que l'historique de commande :
 +
  
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
Ligne 438 : Ligne 528 :
 
[root@Fedora22x64 ~]# history -c && shutdown -h now && exit
 
[root@Fedora22x64 ~]# history -c && shutdown -h now && exit
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
  
 
- On créé le modèle de notre instance stoppée :
 
- On créé le modèle de notre instance stoppée :
 +
  
 
Sur l'interface Cloud Ikoula, allez dans "Instances" puis cliquez sur le nom de votre instance  
 
Sur l'interface Cloud Ikoula, allez dans "Instances" puis cliquez sur le nom de votre instance  
 +
  
 
Cliquez sur "Voir Volumes" :
 
Cliquez sur "Voir Volumes" :
 +
  
 
[[Fichier:Create_image_cloudikoula_20.png]]
 
[[Fichier:Create_image_cloudikoula_20.png]]
 +
  
 
Cliquez sur le nom de votre volume ROOTDISK :
 
Cliquez sur le nom de votre volume ROOTDISK :
 +
  
 
[[Fichier:Create_image_cloudikoula_21.png]]
 
[[Fichier:Create_image_cloudikoula_21.png]]
 +
  
 
Cliquez sur le bouton "Créer un modèle" :
 
Cliquez sur le bouton "Créer un modèle" :
 +
  
 
[[Fichier:Create_image_cloudikoula_22.png]]
 
[[Fichier:Create_image_cloudikoula_22.png]]
 +
  
 
Donnez le nom et la description que vous souhaitez à votre modèle, choisissez le même type du OS que celui de votre instance, cochez "Mot de passe activé" et "redimensionnement dynamique" (si vous avez respectivement mis en place le script cloud-set-guest-password et installé les xentools) :
 
Donnez le nom et la description que vous souhaitez à votre modèle, choisissez le même type du OS que celui de votre instance, cochez "Mot de passe activé" et "redimensionnement dynamique" (si vous avez respectivement mis en place le script cloud-set-guest-password et installé les xentools) :
 +
  
 
[[Fichier:Create_image_cloudikoula_23.png]]
 
[[Fichier:Create_image_cloudikoula_23.png]]
 +
  
 
Une fois la création de votre modèle terminée :
 
Une fois la création de votre modèle terminée :
 +
  
 
[[Fichier:Create_image_cloudikoula_24.png]]
 
[[Fichier:Create_image_cloudikoula_24.png]]
 +
  
 
On peut retrouver celui-ci dans "Modèles" :
 
On peut retrouver celui-ci dans "Modèles" :
 +
  
 
[[Fichier:Create_image_cloudikoula_25.png]]
 
[[Fichier:Create_image_cloudikoula_25.png]]
 +
  
 
Cliquez sur le nom de votre modèle puis sur l'onglet "Zones" pour vérifier que son statut soit prêt (Prêt : Yes)  :
 
Cliquez sur le nom de votre modèle puis sur l'onglet "Zones" pour vérifier que son statut soit prêt (Prêt : Yes)  :
 +
  
 
[[Fichier:Create_image_cloudikoula_26.png]]
 
[[Fichier:Create_image_cloudikoula_26.png]]
 +
  
 
Vous pouvez maintenant déployer des nouvelles instances avec votre modèle compatible Cloud Ikoula (vous devrez sélectionner votre modèle dans l'onglet "Mes modèles" du wizard de déploiement d'instance) :
 
Vous pouvez maintenant déployer des nouvelles instances avec votre modèle compatible Cloud Ikoula (vous devrez sélectionner votre modèle dans l'onglet "Mes modèles" du wizard de déploiement d'instance) :
 +
  
 
[[Fichier:Create_image_cloudikoula_27.png]]
 
[[Fichier:Create_image_cloudikoula_27.png]]

Version du 7 octobre 2015 à 10:46

La procédure ci-dessous explique comment créer un modèle compatible avec Cloud Ikoula à partir d'une installation from scratch (à partir d'une iso).


Dans notre exemple, nous allons créer une image GNU/Linux Fedora 22.


Connectez-vous à l'interface Cloud Ikoula :


https://cloudstack.ikoula.com/client/


Cliquez sur "Modèles" dans le menu gauche :


Create image cloudikoula 01.png


Sélectionnez la vue "ISO" :


Create image cloudikoula 02.png


Cliquez sur le bouton "Enregistrer ISO" :


Create image cloudikoula 03.png


Puis renseignez les champs :


Create image cloudikoula 04.png


1: Indiquez le Nom que vous souhaitez pour votre image 2: Renseignez une description pour votre image 3: Saisissez/collez l'url HTTP (non https) complète du fichier iso 4: Sélectionnez la zone Cloud Ikoula pour laquelle votre image sera disponible 5: Cochez cette case si vous souhaitez qu'une instance puisse démarrer depuis votre iso 6: Indiquez le type de système de votre ISO, si votre système et la version de celui-ci est dans la liste sélectionnez-la sinon choisissez un des type "Other xxx" le plus adapté. Dans notre cas, Fedora 22 n'était pas disponible dans la liste nous avons donc sélectionné "Other Linux (64-bit)". 7: Cochez cette cas si vous souhaitez que votre ISO puisse être télécharger une fois créée


Une fois votre ISO enregistrée, patentiez jusqu'à ça soit en statut "Prêt : Yes" :


Create image cloudikoula 05.png


Cliquez sur "Instances" dans le menu gauche :


Create image cloudikoula 06.png


Cliquez sur le bouton "Ajouter une instance" :


Create image cloudikoula 07.png


Sélectionnez la zone de déploiement de votre instance :


Create image cloudikoula 08.png


Sélectionner ISO puis cliquez sur "Suivant"


Create image cloudikoula 09.png


Cliquez sur l'onglet "Mes ISOs" et cochez l'iso que vous venez de créer :


Create image cloudikoula 10.png


Sélectionnez l'offre de calcul de votre choix puis cliquez sur "Suivant"


Faites glissez le curseur pour obtenir la taille de disque (en GB) que vous souhaitez pour votre instance et donc pour votre futur modèle ou saisissez la taille (en GB) manuellement dans le champs puis validez avec le touche "Entrée" de votre clavier pour que la taille choisie apparaisse dans la description au dessus :


Create image cloudikoula 11.png


Cliquez sur "Suivant"


Poursuivez les étapes classiques de déploiement d'une instance (Affinité, Réseau, Nom de l'instance) en cliquant sur "Suivant" à chaque fois pour valider et enfin sur "Démarrer VM"


Une fois votre instance déployée, cliquez sur le nom de celle-ci (dans le menu Instances) :


Create image cloudikoula 12.png


Cliquez sur le bouton "Voir la console" (notez que vous voyez votre image ISO attachée à votre instance dans les détails de celle-ci) :


Create image cloudikoula 13.png


Une nouvelle fenêtre pop-up de votre navigateur va s'ouvrir (si ce n'est pas le cas vérifier que vous le bloquez pas les pop-up pour l'interface Cloud Ikoula). Cette fenêtre est en fait une console graphique web type VNC/KVM (écran/clavier/souris) de votre instance qui va vous permettre d'installer le système sur le disque de votre instance :


700px


Poursuivez l'installation de votre système avec le partitionnement et la configuration que vous souhaitez (installez le paquet SSH si cela vous est demandé), notez toutefois que le clavier n'est pas de type AZERTY (attention donc à la définition du mot de passe).


A la fin de l'installation quand cela vous est demandé cliquez sur Redémarrer, stopper votre instance afin de détacher l'ISO


Une fois votre instance stoppée, cliquez sur le nom de votre instance puis sur le bouton "Détacher l'image ISO" :


Create image cloudikoula 15.png


Une fois l'iso détachée de votre instance, vous pouvez à nouveau démarrer celle-ci afin de démarrer sur le système que vous venez d'installer sur le disque (ROOTDISK) de cette dernière.


Create image cloudikoula 16.png


Cliquez sur le bouton "Voir la console" pour voir votre système démarré :


Create image cloudikoula 17.png


Connectez-vous en SSH à votre instance (vous devez avoir créer une règle parefeu et de redirection de port si votre instance est en zone/réseau avancée ou une règle entrante de groupe de sécurité si elle est en zone basic et ne pas avoir de règles iptables sur le système de votre instance) pour terminer la configuration du système afin de le rendre compatible avec le Cloud Ikoula.


S'agissant d'un context virtuel, nous nous sommes appuyés sur un partitionnement avec LVM (volumes logiques racine et swap) afin de pouvoir aisément redimensionner nos partitions en cas de redimensionnement ou d'ajout d'un disque virtuel :


[root@Fedora22x64 ~]# fdisk -l
Disque /dev/xvda : 50 GiB, 53687091200 octets, 104857600 secteurs
Unités : secteur de 1 × 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 512 octets
taille d'E/S (minimale / optimale) : 512 octets / 512 octets
Type d'étiquette de disque : dos
Identifiant de disque : 0xa1c87ad9

Périphérique Amorçage  Début       Fin  Secteurs Taille Id Type
/dev/xvda1               2048      4095      2048     1M 83 Linux
/dev/xvda2   *           4096   1955839   1951744   953M 83 Linux
/dev/xvda3            1955840 104857599 102901760  49,1G 8e LVM Linux


Disque /dev/mapper/vg01-root : 48,1 GiB, 51610910720 octets, 100802560 secteurs
Unités : secteur de 1 × 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 512 octets
taille d'E/S (minimale / optimale) : 512 octets / 512 octets

Disque /dev/mapper/vg01-swap : 1 GiB, 1073741824 octets, 2097152 secteurs
Unités : secteur de 1 × 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 512 octets
taille d'E/S (minimale / optimale) : 512 octets / 512 octets


[root@Fedora22x64 ~]# pvs
  PV         VG   Fmt  Attr PSize  PFree
  /dev/xvda3 vg01 lvm2 a--  49,07g    0
[root@Fedora22x64 ~]# vgs
  VG   #PV #LV #SN Attr   VSize  VFree
  vg01   1   2   0 wz--n- 49,07g    0
[root@Fedora22x64 ~]# lvs
  LV   VG   Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root vg01 -wi-ao---- 48,07g
  swap vg01 -wi-ao----  1,00g


Mettez à jour le système si nécessaire :


[root@Fedora22x64 ~]# dnf upgrade


Veuillez installer au minima les paquets qui pourront être utiles pour exécuter des commandes en paramètres "userdata" lors d'un déploiement d'instance avec votre modèle : vim, rsync, curl, wget, cloud-init, puppet, facter :


[root@Fedora22x64 system]# dnf list installed vim-enhanced rsync curl wget cloud-init puppet facter
Vérification de l'expiration des métadonnées effectuée il y a 0:30:24 sur Tue Oct  6 08:49:42 2015.
Paquets installés
cloud-init.x86_64                                                                         0.7.6-3.fc22                                                                           @System
curl.x86_64                                                                               7.40.0-7.fc22                                                                          @System
facter.x86_64                                                                             2.4.1-1.fc22                                                                           @System
puppet.noarch                                                                             4.1.0-5.fc22                                                                           @System
rsync.x86_64                                                                              3.1.1-6.fc22                                                                           @System
vim-enhanced.x86_64                                                                       2:7.4.827-1.fc22                                                                       @System
wget.x86_64                                                                               1.16.3-1.fc22                                                                          @System


- Ajouter la ligne "datasource_list: ['CloudStack']" en début du fichier de configuration /etc/cloud/cloud.cfg (si vous avez installé cloud-init comme indiqué ci-dessus) :


[root@fedora22 ~]# head -n1 /etc/cloud/cloud.cfg
datasource_list: ['CloudStack']


Récupérez l'archive contenant les Xen tools sur notre mirroir :


[root@Fedora22x64 ~]# wget http://mirror03.ikoula.com/pub/citrix/xentools/linux65.zip
--2015-10-05 17:28:10--  http://mirror03.ikoula.com/pub/citrix/xentools/linux65.zip
Résolution de mirror03.ikoula.com (mirror03.ikoula.com)80.93.XX.XX, 2a00:c70:1:80:93:XX:XX:1
Connexion à mirror03.ikoula.com (mirror03.ikoula.com)|80.93.XX.XX|:80… connecté.
requête HTTP transmise, en attente de la réponse… 200 OK
Taille : 60474580 (58M) [application/zip]
Sauvegarde en : « linux65.zip »

linux65.zip                                   100%[===================================================================================================>]  57,67M  1,14MB/s   ds 50s

2015-10-05 17:29:00 (1,14 MB/s) — « linux65.zip » sauvegardé [60474580/60474580]


Désarchivez-la dans le répertoire courant (nécessite que unzip soit installé) :


[root@Fedora22x64 ~]# unzip linux65.zip
Archive:  linux65.zip
   creating: linux65/
   creating: linux65/rhel4x/
  inflating: linux65/rhel4x/kernel-xenU-2.6.9-103.EL.xs6.5.0.68.i686.rpm
  inflating: linux65/rhel4x/mkinitrd-4.2.1.10-1.1.i386.rpm
  inflating: linux65/rhel4x/versions
  inflating: linux65/xe-linux-distribution
  inflating: linux65/xe-guest-utilities_6.5.0-1400_amd64.deb
  inflating: linux65/xe-guest-utilities_6.5.0-1400_i386.deb
  inflating: linux65/xe-guest-utilities-6.5.0-1400.i386.rpm
  inflating: linux65/xe-guest-utilities-6.5.0-1400.x86_64.rpm
  inflating: linux65/xe-guest-utilities-xenstore-6.5.0-1400.i386.rpm
  inflating: linux65/install.sh
  inflating: linux65/xe-guest-utilities-xenstore-6.5.0-1400.x86_64.rpm
   creating: linux65/debian-lenny/
  inflating: linux65/debian-lenny/linux-image-2.6.32-5-amd64_2.6.32-43.xs6.5.0.299_amd64.deb
  inflating: linux65/debian-lenny/linux-image-2.6-xen_2.6.32+0.xs299_i386.deb
  inflating: linux65/debian-lenny/linux-image-2.6.32-5-686-bigmem_2.6.32-43.xs6.5.0.299_i386.deb
  inflating: linux65/debian-lenny/linux-image-2.6-xen_2.6.32+0.xs299_amd64.deb
  inflating: linux65/debian-lenny/versions
  inflating: linux65/versions.rpm
  inflating: linux65/README.txt
  inflating: linux65/versions.deb
[root@Fedora22x64 ~]#


Exécutez l'installation des Xen tools :


[root@Fedora22x64 ~]# ./linux65/install.sh
Detected `Fedora release 22 (Twenty Two)' (fedora version 22).

The following changes will be made to this Virtual Machine:
  * update arp_notify sysctl.conf.
  * packages to be installed/upgraded:
    - xe-guest-utilities-6.5.0-1400.x86_64.rpm
    - xe-guest-utilities-xenstore-6.5.0-1400.x86_64.rpm

Continue? [y/n] y

attention : Génération d'index manquant(s) 4, merci d'attendre...
Préparation...                       ################################# [100%]
Mise à jour / installation...
   1:xe-guest-utilities-xenstore-6.5.0################################# [ 50%]
   2:xe-guest-utilities-6.5.0-1400    ################################# [100%]

You should now reboot this Virtual Machine.


Redémarrez votre instance comme ceci vous est demandé :


[root@Fedora22x64 ~]# reboot


Vérification :


[root@Fedora22x64 ~]# systemctl status xe-linux-distribution.service
● xe-linux-distribution.service - LSB: XenServer Virtual Machine daemon providing host integration services
   Loaded: loaded (/etc/rc.d/init.d/xe-linux-distribution)
   Active: active (running) since lun. 2015-10-05 19:11:06 CEST; 13h ago
     Docs: man:systemd-sysv-generator(8)
  Process: 586 ExecStart=/etc/rc.d/init.d/xe-linux-distribution start (code=exited, status=0/SUCCESS)
   CGroup: /system.slice/xe-linux-distribution.service
           ├─ 631 /bin/bash /usr/sbin/xe-daemon -p /var/run/xe-daemon.pid
           └─2725 sleep 60

oct. 05 19:11:05 Fedora22x64 systemd[1]: Starting LSB: XenServer Virtual Machine daemon providing host integration services...
oct. 05 19:11:06 Fedora22x64 systemd[1]: Started LSB: XenServer Virtual Machine daemon providing host integration services.
oct. 05 19:11:06 Fedora22x64 xe-linux-distribution[586]: Mounting xenfs on /proc/xen: [  OK  ]
oct. 05 19:11:06 Fedora22x64 xe-linux-distribution[586]: Detecting Linux distribution version: [  OK  ]
oct. 05 19:11:06 Fedora22x64 xe-linux-distribution[586]: Starting xe daemon:  [  OK  ]


Vous pouvez supprimer les fichiers de l'installation :


[root@Fedora22x64 ~]# rm -rf linux65*
[root@Fedora22x64 ~]#


Nous ajoutons les lignes suivantes dans /etc/sysctl.conf (on désactive IPv6 et on applique certaines optimisations):


#Disable IPv6
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
net.ipv6.conf.eth0.disable_ipv6 = 1

#Disable Swap
vm.swappiness = 0

#Improve memory management
vm.dirty_ratio = 60
vm.dirty_background_ratio = 2
#No overcommitment of available memory
vm.overcommit_ratio = 0
vm.overcommit_memory = 0

#Set maximum amount of memory allocated to shm to 256MB
kernel.shmmax = 268435456
kernel.shmall = 268435456

#Keep at least 64MB of free RAM space available
vm.min_free_kbytes = 65535


Puis nous exécutons la commande "sysctl -p" :


[root@Fedora22x64 init.d]# sysctl -p
net.ipv4.conf.all.arp_notify = 1
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
net.ipv6.conf.eth0.disable_ipv6 = 1
vm.swappiness = 0
vm.dirty_ratio = 60
vm.dirty_background_ratio = 2
vm.overcommit_ratio = 0
vm.overcommit_memory = 0
kernel.shmmax = 268435456
kernel.shmall = 268435456
vm.min_free_kbytes = 65535


On modifie la politique SELinux pour la passer de "enforcing" à "permissive" :


[root@Fedora22x64 ~]# sed -i 's/SELINUX=enforcing/SELINUX=permissive/g' /etc/sysconfig/selinux
[root@Fedora22x64 ~]# setenforce Permissive
[root@Fedora22x64 ~]# sestatus
SELinux status:                 enabled
SELinuxfs mount:                /sys/fs/selinux
SELinux root directory:         /etc/selinux
Loaded policy name:             targeted
Current mode:                   permissive
Mode from config file:          enforcing
Policy MLS status:              enabled
Policy deny_unknown status:     allowed
Max kernel policy version:      29


Si votre système dispose de règles parefeu d'origine, veuillez stoppper et désactiver celui-ci, exemple dans notre cas :


[root@Fedora22x64 ~]# systemctl stop firewalld.service
[root@Fedora22x64 ~]# systemctl disable firewalld.service
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
Removed symlink /etc/systemd/system/basic.target.wants/firewalld.service.


On vérifie qu'il n'y a plus de règles de chargées :


[root@Fedora22x64 ~]# iptables -vnL
Chain INPUT (policy ACCEPT 34 packets, 2240 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 32 packets, 3568 bytes)
 pkts bytes target     prot opt in     out     source               destination


Nous allons maintenant installer les scripts Cloud guests sur lesquels s'appuient les fonctionnalités de changement de mot de passe, de hostname, les userdata's, clés SSH :


- Commencez par récupérer l'archive contenant les scripts sur notre mirroir (modifiez fedora22 par centos7, debian8 ou ubuntu1404 dans l'url suivante) :


[root@Fedora22x64 ~]# wget http://mirror02.ikoula.com/priv/citrix/scripts/systemd/fedora22/cloud-set-guest-scripts.tar.gz
--2015-10-06 09:57:13--  http://mirror02.ikoula.com/priv/citrix/scripts/systemd/fedora22/cloud-set-guest-scripts.tar.gz
Résolution de mirror02.ikoula.com (mirror02.ikoula.com)80.93.XX.XX, 2a00:c70:1:80:93:XX:XX:1
Connexion à mirror02.ikoula.com (mirror02.ikoula.com)|80.93.XX.XX|:80… connecté.
requête HTTP transmise, en attente de la réponse… 200 OK
Taille : 2965 (2,9K) [application/x-gzip]
Sauvegarde en : « cloud-set-guest-scripts.tar.gz »

cloud-set-guest-scripts.tar.gz                100%[===================================================================================================>]   2,90K  --.-KB/s   ds 0s

2015-10-06 09:57:13 (279 MB/s) — « cloud-set-guest-scripts.tar.gz » sauvegardé [2965/2965]


- Extraire le contenu :


[root@Fedora22x64 ~]# tar xvzf cloud-set-guest-scripts.tar.gz
cloud-set-guest-hostname
cloud-set-guest-hostname.service
cloud-set-guest-password
cloud-set-guest-password.service
cloud-set-guest-sshkey
cloud-set-guest-sshkey.service
cloud-set-guest-userdata
cloud-set-guest-userdata.service
readme.txt


- Déplacez les fichiers .service dans /lib/systemd/system/ :


[root@Fedora22x64 ~]# mv cloud-set-guest-*.service /lib/systemd/system/
[root@Fedora22x64 ~]#


- Déplacez les autres fichiers dans /etc/init.d/


[root@Fedora22x64 ~]# rm -f cloud-set-guest-scripts.tar.gz
[root@Fedora22x64 ~]# mv cloud-set-guest-* /etc/init.d/
[root@Fedora22x64 ~]#


- On active nos unités de services :


[root@Fedora22x64 ~]# systemctl enable cloud-set-guest-hostname.service
Created symlink from /etc/systemd/system/multi-user.target.wants/cloud-set-guest-hostname.service to /usr/lib/systemd/system/cloud-set-guest-hostname.service.
[root@Fedora22x64 ~]# systemctl enable cloud-set-guest-password.service
Created symlink from /etc/systemd/system/multi-user.target.wants/cloud-set-guest-password.service to /usr/lib/systemd/system/cloud-set-guest-password.service.
[root@Fedora22x64 ~]# systemctl enable cloud-set-guest-sshkey.service
Created symlink from /etc/systemd/system/multi-user.target.wants/cloud-set-guest-sshkey.service to /usr/lib/systemd/system/cloud-set-guest-sshkey.service.
[root@Fedora22x64 ~]# systemctl enable cloud-set-guest-userdata.service
Created symlink from /etc/systemd/system/multi-user.target.wants/cloud-set-guest-userdata.service to /usr/lib/systemd/system/cloud-set-guest-userdata.service.


[root@Fedora22x64 ~]# systemctl -l | grep cloud-set
  cloud-set-guest-hostname.service                                                          loaded active exited    CloudStack Set Guest Hostname
  cloud-set-guest-password.service                                                          loaded active exited    CloudStack Set Guest Password Reset
  cloud-set-guest-sshkey.service                                                            loaded active exited    CloudStack Set Guest Ssh Key
  cloud-set-guest-userdata.service                                                          loaded active exited    CloudStack Set Guest Userdata


- On purge le fichier de leases DHCP (chemin et nom de fichier à adapter au besoin) :


[root@fedora22 ~]# > /var/lib/dhclient/dhclient.leases


- On purge les fichiers de logs principaux ainsi que l'historique de commande :


[root@Fedora22x64 ~]# list=`find /var/log/ -type f`
[root@Fedora22x64 ~]# for arg in $list ; do > $arg ; done
[root@Fedora22x64 ~]# list=`find /var/log/ -name "*.gz"`
[root@Fedora22x64 ~]# for arg in $list ; do /bin/rm $arg ; done
[root@Fedora22x64 ~]# > .bash_history
[root@Fedora22x64 ~]# history -c && shutdown -h now && exit


- On créé le modèle de notre instance stoppée :


Sur l'interface Cloud Ikoula, allez dans "Instances" puis cliquez sur le nom de votre instance


Cliquez sur "Voir Volumes" :


Create image cloudikoula 20.png


Cliquez sur le nom de votre volume ROOTDISK :


Create image cloudikoula 21.png


Cliquez sur le bouton "Créer un modèle" :


Create image cloudikoula 22.png


Donnez le nom et la description que vous souhaitez à votre modèle, choisissez le même type du OS que celui de votre instance, cochez "Mot de passe activé" et "redimensionnement dynamique" (si vous avez respectivement mis en place le script cloud-set-guest-password et installé les xentools) :


Create image cloudikoula 23.png


Une fois la création de votre modèle terminée :


Create image cloudikoula 24.png


On peut retrouver celui-ci dans "Modèles" :


Create image cloudikoula 25.png


Cliquez sur le nom de votre modèle puis sur l'onglet "Zones" pour vérifier que son statut soit prêt (Prêt : Yes) :


Create image cloudikoula 26.png


Vous pouvez maintenant déployer des nouvelles instances avec votre modèle compatible Cloud Ikoula (vous devrez sélectionner votre modèle dans l'onglet "Mes modèles" du wizard de déploiement d'instance) :


Create image cloudikoula 27.png