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

De Ikoula Wiki
Jump to navigation Jump to search
 
(63 versions intermédiaires par 11 utilisateurs non affichées)
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).
+
<span data-link_translate_fr_title="Comment creer un modele compatible Cloud Ikoula"  data-link_translate_fr_url="Comment creer un modele compatible Cloud Ikoula"></span>[[:fr:Comment creer un modele compatible Cloud Ikoula]][[fr:Comment creer un modele compatible Cloud Ikoula]]
 +
<span data-link_translate_he_title="איך ליצור מודל תואם ענן Ikoula"  data-link_translate_he_url="%D7%90%D7%99%D7%9A+%D7%9C%D7%99%D7%A6%D7%95%D7%A8+%D7%9E%D7%95%D7%93%D7%9C+%D7%AA%D7%95%D7%90%D7%9D+%D7%A2%D7%A0%D7%9F+Ikoula"></span>[[:he:איך ליצור מודל תואם ענן Ikoula]][[he:איך ליצור מודל תואם ענן Ikoula]]
 +
<span data-link_translate_ro_title="Cum pentru a crea un model compatibil nor Ikoula"  data-link_translate_ro_url="Cum+pentru+a+crea+un+model+compatibil+nor+Ikoula"></span>[[:ro:Cum pentru a crea un model compatibil nor Ikoula]][[ro:Cum pentru a crea un model compatibil nor Ikoula]]
 +
<span data-link_translate_ru_title="Как создать совместимый модель облачных Ikoula"  data-link_translate_ru_url="%D0%9A%D0%B0%D0%BA+%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D1%82%D1%8C+%D1%81%D0%BE%D0%B2%D0%BC%D0%B5%D1%81%D1%82%D0%B8%D0%BC%D1%8B%D0%B9+%D0%BC%D0%BE%D0%B4%D0%B5%D0%BB%D1%8C+%D0%BE%D0%B1%D0%BB%D0%B0%D1%87%D0%BD%D1%8B%D1%85+Ikoula"></span>[[:ru:Как создать совместимый модель облачных Ikoula]][[ru:Как создать совместимый модель облачных Ikoula]]
 +
<span data-link_translate_pl_title="Jak utworzyć zgodnego modelu Cloud Ikoula"  data-link_translate_pl_url="Jak+utworzy%C4%87+zgodnego+modelu+Cloud+Ikoula"></span>[[:pl:Jak utworzyć zgodnego modelu Cloud Ikoula]][[pl:Jak utworzyć zgodnego modelu Cloud Ikoula]]
 +
<span data-link_translate_ja_title="雲 Ikoula の互換性のあるモデルを作成する方法"  data-link_translate_ja_url="%E9%9B%B2+Ikoula+%E3%81%AE%E4%BA%92%E6%8F%9B%E6%80%A7%E3%81%AE%E3%81%82%E3%82%8B%E3%83%A2%E3%83%87%E3%83%AB%E3%82%92%E4%BD%9C%E6%88%90%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95"></span>[[:ja:雲 Ikoula の互換性のあるモデルを作成する方法]][[ja:雲 Ikoula の互換性のあるモデルを作成する方法]]
 +
<span data-link_translate_ar_title="كيفية إنشاء نموذج متوافق مع "عكلة سحابة""  data-link_translate_ar_url="%D9%83%D9%8A%D9%81%D9%8A%D8%A9+%D8%A5%D9%86%D8%B4%D8%A7%D8%A1+%D9%86%D9%85%D9%88%D8%B0%D8%AC+%D9%85%D8%AA%D9%88%D8%A7%D9%81%D9%82+%D9%85%D8%B9+%22%D8%B9%D9%83%D9%84%D8%A9+%D8%B3%D8%AD%D8%A7%D8%A8%D8%A9%22"></span>[[:ar:كيفية إنشاء نموذج متوافق مع "عكلة سحابة"]][[ar:كيفية إنشاء نموذج متوافق مع "عكلة سحابة"]]
 +
<span data-link_translate_zh_title="如何创建一个兼容模型云 Ikoula"  data-link_translate_zh_url="%E5%A6%82%E4%BD%95%E5%88%9B%E5%BB%BA%E4%B8%80%E4%B8%AA%E5%85%BC%E5%AE%B9%E6%A8%A1%E5%9E%8B%E4%BA%91+Ikoula"></span>[[:zh:如何创建一个兼容模型云 Ikoula]][[zh:如何创建一个兼容模型云 Ikoula]]
 +
<span data-link_translate_de_title="Wie erstellen Sie ein kompatibles Modell Cloud Ikoula"  data-link_translate_de_url="Wie+erstellen+Sie+ein+kompatibles+Modell+Cloud+Ikoula"></span>[[:de:Wie erstellen Sie ein kompatibles Modell Cloud Ikoula]][[de:Wie erstellen Sie ein kompatibles Modell Cloud Ikoula]]
 +
<span data-link_translate_nl_title="Hoe maak een compatibel model Cloud Ikoula"  data-link_translate_nl_url="Hoe+maak+een+compatibel+model+Cloud+Ikoula"></span>[[:nl:Hoe maak een compatibel model Cloud Ikoula]][[nl:Hoe maak een compatibel model Cloud Ikoula]]
 +
<span data-link_translate_it_title="Come creare un modello compatibile Cloud Ikoula"  data-link_translate_it_url="Come+creare+un+modello+compatibile+Cloud+Ikoula"></span>[[:it:Come creare un modello compatibile Cloud Ikoula]][[it:Come creare un modello compatibile Cloud Ikoula]]
 +
<span data-link_translate_pt_title="Como criar um modelo compatível nuvem Ikoula"  data-link_translate_pt_url="Como+criar+um+modelo+compat%C3%ADvel+nuvem+Ikoula"></span>[[:pt:Como criar um modelo compatível nuvem Ikoula]][[pt:Como criar um modelo compatível nuvem Ikoula]]
 +
<span data-link_translate_es_title="Cómo crear un modelo compatible nube Ikoula"  data-link_translate_es_url="C%C3%B3mo+crear+un+modelo+compatible+nube+Ikoula"></span>[[:es:Cómo crear un modelo compatible nube Ikoula]][[es:Cómo crear un modelo compatible nube Ikoula]]
 +
<span data-link_translate_en_title="How create a compatible model Cloud Ikoula"  data-link_translate_en_url="How+create+a+compatible+model+Cloud+Ikoula"></span>[[:en:How create a compatible model Cloud Ikoula]][[en:How create a compatible model Cloud Ikoula]]
  
Dans notre exemple, nous allons créer une image GNU/Linux Fedora 22.
+
{{#seo:
 +
|title=Comment créer un modèle compatible Cloud Ikoula
 +
|title_mode=append
 +
|keywords=these,are,your,keywords
 +
|description=Découvrez dans cet article comment creer un modele compatible Cloud Ikoula
 +
|image=Uploaded_file.png
 +
|image_alt=Wiki Logo
 +
}}
  
Connectez-vous à l'interface Cloud Ikoula :
+
==Description==
  
https://cloudstack.ikoula.com/client/
+
Nous allons suivre le déroulé complet de la création d'un modèle compatible avec le [https://www.ikoula.com/fr/cloud-public Cloud] Ikoula One à partir d'une installation _from scratch_ (à partir d'une iso).
 +
Dans notre exemple nous allons utiliser une iso _netinstall_ de Debian à jour, nous expliquerons suite à l'installation les quelques étapes nécessaires pour rendre pleinnement compatible votre modèle.
  
Cliquez sur "Modèles" dans le menu gauche :
+
==Préparatifs==
  
[[Fichier:Create_image_cloudikoula_01.png]]
+
* Récupérer l'image ISO de votre choix, nous utiliserons l'image minimal _netinstall_ de Debian 9 'stretch' dans notre exemple
  
Sélectionnez la vue "ISO"  :
 
  
[[Fichier:Create_image_cloudikoula_02.png]]
+
===Enregsitrement de l'ISO===
  
Cliquez sur le bouton "Enregistrer ISO" :
 
  
[[Fichier:Create_image_cloudikoula_03.png]]
+
* Connectez-vous à votre interface de gestion [https://cloudstack.ikoula.com/client/ Cloud Ikoula One]
  
Puis renseignez les champs :
+
[[Fichier:Creation_model-cloud-00.png]]
  
[[Fichier:Create_image_cloudikoula_04.png]]
 
  
1: Indiquez le Nom que vous souhaitez pour votre image
+
* Cliquez sur modèles
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" :
+
[[Fichier:Creation_model-cloud-01.png]]
  
[[Fichier:Create_image_cloudikoula_05.png]]
 
  
Cliquez sur "Instances" dans le menu gauche :
+
* Sélectionnez la vue ISO
  
[[Fichier:Create_image_cloudikoula_06.png]]
+
[[Fichier:Creation_model-cloud-02.png]]
  
Cliquez sur le bouton "Ajouter une instance" :
 
  
[[Fichier:Create_image_cloudikoula_07.png]]
+
* Cliquez sur _Enregistrer ISO"
  
Sélectionnez la zone de déploiement de votre instance :
+
[[Fichier:Creation_model-cloud-03.png]]
  
[[Fichier:Create_image_cloudikoula_08.png]]
 
  
Sélectionner ISO puis cliquez sur "Suivant"
+
* Renseignez les informations nécessaires
  
[[Fichier:Create_image_cloudikoula_09.png]]
+
[[Fichier:Creation_model-cloud-04.png]]
  
Cliquez sur l'onglet "Mes ISOs" et cochez l'iso que vous venez de créer :
+
<br>
 +
1 -  Indiquez le nom que vous souhaitez pour votre image
 +
<br>
 +
2 - Renseignez une description pour votre image
 +
<br>
 +
3 - Saisissez / collez l'URL HTTP (non https) complète du fichier ISO
 +
<br>
 +
4 - Sélectionnez la zone [https://www.ikoula.com/fr/cloud-public Cloud] Ikoula pour laquelle votre image sera disponible
 +
<br>
 +
5 - Cochez cette case si vous souhaitez qu'une instance puisse démarrer depuis votre ISO
 +
<br>
 +
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, Debian 9 n'était pas disponible dans la liste nous avons donc sélectionné "Other Linux (64-bit)"
 +
<br>
 +
7 - Cochez cette case si vous souhaitez que votre ISO puisse être téléchargé une fois créée
 +
<br>
 +
<br>
 +
PS : L'url doit être une url publique accessible sans authentification, vous pouvez utilisez votre espace Ikeepincloud.
  
[[Fichier:Create_image_cloudikoula_10.png]]
 
  
Sélectionnez l'offre de calcul de votre choix puis cliquez sur "Suivant"
+
* Une fois votre ISO enregistré, patientez le temps que le status prêt soit à _YES_
  
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:Creation_model-cloud-05.png]]
  
[[Fichier:Create_image_cloudikoula_11.png]]
+
===Déploiement de notre base===
  
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"
+
* Cliquez sur _Instances_ dans le menu de gauche
  
Une fois votre instance déployée, cliquez sur le nom de celle-ci (dans le menu Instances) :
+
[[Fichier:Creation_model-cloud-06.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 _Ajouter une instance_
  
[[Fichier:Create_image_cloudikoula_13.png]]
+
[[Fichier:Creation_model-cloud-07.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 :
 
  
[[Fichier:Create_image_cloudikoula_14.png]]
+
* Sélectionner la zone dans laquelle votre ISO à été enregistrée
  
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).
+
[[Fichier:Creation_model-cloud-08.png]]
  
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" :
+
* Sélectionnez ISO afin de charger votre iso au démarrage de l'instance
  
[[Fichier:Create_image_cloudikoula_15.png]]
+
[[Fichier:Creation_model-cloud-09.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.
 
  
[[Fichier:Create_image_cloudikoula_16.png]]
+
* Choisissez votre ISO dans la catégorie _Mes ISOs_
  
Cliquez sur le bouton "Voir la console" pour voir votre système démarré :
+
[[Fichier:Creation_model-cloud-10.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.
+
* Sélectionnez une offre de calcul, cette offre ne sera pas enregistré dans le modèle.
  
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">
+
* Ajouter une offre de disque à votre Base à la taille voulue, pour cet exemple nous choisissons 15 Go
[root@Fedora22x64 ~]# fdisk -l
+
 
Disque /dev/xvda : 50 GiB, 53687091200 octets, 104857600 secteurs
+
[[Fichier:Creation_model-cloud-11.png]]
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
+
* Poursuivez les étapes classiques pour le déploiement  de votre instance (affinité, réseau, et descriptif) et déployez votre instance.
Type d'étiquette de disque : dos
 
Identifiant de disque : 0xa1c87ad9
 
  
Périphérique Amorçage  Début      Fin  Secteurs Taille Id Type
+
===Modification de notre base===
/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
 
  
 +
Une fois votre instance démarrer il vous faudra vous connecter à l'aide du KVM virtuel pour procéder à l'installation du système et à sa configuration minimale (réseau, mots de passe, etc).
  
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
 
  
 +
* Pour vous connecter une fois avoir sélectionner votre instance cliquez sur l'icône en haut
  
Disque /dev/mapper/vg01-swap : 1 GiB, 1073741824 octets, 2097152 secteurs
+
[[Fichier:Creation_model-cloud-12.png]]
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
 
</syntaxhighlight>
 
  
<syntaxhighlight lang="bash">
 
[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
 
</syntaxhighlight>
 
  
Mettez à jour le système si nécessaire :
+
Vous devriez avoir accès à votre instance depuis une pop-up au travers de laquelle vous pourrez procéder à l'installation de votre système.
  
<syntaxhighlight lang="bash">
 
[root@Fedora22x64 ~]# dnf upgrade
 
</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 :
+
[[Fichier:Creation_model-cloud-13.png]]
  
<syntaxhighlight lang="bash">
 
[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
 
</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) :
+
Cette fenêtre est en fait une console KVM vers votre instance, vous permettant ainsi de prendre la main dessus même si vous n'avez pas d'accès réseau à celle-ci.
  
<syntaxhighlight lang="bash">
+
===Installation de votre base et personnalisation===
[root@fedora22 ~]# head -n1 /etc/cloud/cloud.cfg
 
datasource_list: ['CloudStack']
 
</syntaxhighlight>
 
  
Récupérez l'archive contenant les Xen tools sur notre mirroir :
+
Voici les quelques points importants durant l'installation de la base pour la création d'un modèle compatible Cloud Ikoula One :
  
<syntaxhighlight lang="bash">
+
1 - Réseau : lors de l'installation un bail DHCP est offert à l'instance, laisser la configuration automatique de votre réseau s’effectuer par l'installateur
[root@Fedora22x64 ~]# wget http://mirror03.ikoula.com/pub/citrix/xentools/linux65.zip
+
<br>
--2015-10-05 17:28:10--  http://mirror03.ikoula.com/pub/citrix/xentools/linux65.zip
+
2 - Partitionnement : Nous recommandons vivement l'utilisation de LVM pour permettre plus de flexibilité à votre modèle, vous trouverez ci-joint un plan de partitionnement en exemple.
Résolution de mirror03.ikoula.com (mirror03.ikoula.com)… 80.93.XX.XX, 2a00:c70:1:80:93:XX:XX:1
+
<pre>
Connexion à mirror03.ikoula.com (mirror03.ikoula.com)|80.93.XX.XX|:80… connecté.
+
Table de partition du disque xvda en _GPT_
requête HTTP transmise, en attente de la réponse… 200 OK
+
- Partition de type _ext2_ de 1Go nommé boot avec comme point de montage /boot
Taille : 60474580 (58M) [application/zip]
+
- Groupe de volume vg01 contenant :
Sauvegarde en : « linux65.zip »
+
- Volume logique swap de 1Go
 +
- Volume logique root du restant de votre disque
 +
- Partition du type _swap_
 +
- Partition de type _ext4_ nommé root avec comme point de montage /
 +
</pre>
 +
3 - Installer un serveur ssh et le configurer pour permettre la connexion
 +
<br>
 +
4 - Ouvrir et rediriger les ports nécessaires à la connexion ssh et à l'installation de paquets.
 +
<br>
 +
* Après installation du système de base détacher l'iso
  
linux65.zip                                  100%[===================================================================================================>] 57,67M  1,14MB/s  ds 50s
+
[[Fichier:Creation_model-cloud-14.png]]
  
2015-10-05 17:29:00 (1,14 MB/s) — « linux65.zip » sauvegardé [60474580/60474580]
 
</syntaxhighlight>
 
  
Désarchivez-la dans le répertoire courant (nécessite que unzip soit installé) :
+
* Connectez-vous à l'instance après un dernier redémarrage du système avec l'ISO détaché
  
 +
[[Fichier:Creation_model-cloud-15.png]]
 +
<br>
 +
<br>
 +
Ps : Dans notre exemple nous utliserons Putty https://putty.org/
 +
<br>
 +
Vous pouvez ainsi vérifier que tout soit en ordre au niveau du disque et des partitions :
 +
<br>
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
[root@Fedora22x64 ~]# unzip linux65.zip
+
root@Demo-Model-Ikoula:~# lsblk
Archivelinux65.zip
+
NAME          MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
  creating: linux65/
+
sr0            11:0   1 1024M  0 rom
   creating: linux65/rhel4x/
+
xvda          202:0   15G  0 disk
  inflating: linux65/rhel4x/kernel-xenU-2.6.9-103.EL.xs6.5.0.68.i686.rpm
+
├─xvda1      202:1    0 953M  0 part /boot
  inflating: linux65/rhel4x/mkinitrd-4.2.1.10-1.1.i386.rpm
+
└─xvda2      202:2   0 14.1G  0 part
  inflating: linux65/rhel4x/versions
+
   ├─vg01-swap 254:0   0 952M  0 lvm  [SWAP]
  inflating: linux65/xe-linux-distribution
+
   └─vg01-root 254:1    0 13.1G  0 lvm  /
  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 ~]#
 
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
<br>
 +
<syntaxhighlight lang="bash">
 +
root@Demo-Model-Ikoula:~# fdisk -l
 +
Disk /dev/xvda: 15 GiB, 16106127360 bytes, 31457280 sectors
 +
Units: sectors of 1 * 512 = 512 bytes
 +
Sector size (logical/physical): 512 bytes / 512 bytes
 +
I/O size (minimum/optimal): 512 bytes / 512 bytes
 +
Disklabel type: gpt
 +
Disk identifier: 4F115A5C-B4BC-4910-952A-52DA2BAF6F91
  
Exécutez l'installation des Xen tools :
+
Device      Start      End  Sectors  Size Type
 
+
/dev/xvda1    2048  1953791  1951744  953M Linux filesystem
<syntaxhighlight lang="bash">
+
/dev/xvda2 1953792 31455231 29501440 14.1G Linux LVM
[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
+
Disk /dev/mapper/vg01-swap: 952 MiB, 998244352 bytes, 1949696 sectors
 +
Units: sectors of 1 * 512 = 512 bytes
 +
Sector size (logical/physical): 512 bytes / 512 bytes
 +
I/O size (minimum/optimal): 512 bytes / 512 bytes
  
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.
+
Disk /dev/mapper/vg01-root: 13.1 GiB, 14105444352 bytes, 27549696 sectors
 +
Units: sectors of 1 * 512 = 512 bytes
 +
Sector size (logical/physical): 512 bytes / 512 bytes
 +
I/O size (minimum/optimal): 512 bytes / 512 bytes
 
</syntaxhighlight>
 
</syntaxhighlight>
 
+
<br>
Redémarrez votre instance comme ceci vous est demandé :
 
 
 
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
[root@Fedora22x64 ~]# reboot
+
root@Demo-Model-Ikoula:~# pvs
 +
  PV        VG  Fmt  Attr PSize  PFree
 +
  /dev/xvda2 vg01 lvm2 a--  14.07g    0
 
</syntaxhighlight>
 
</syntaxhighlight>
 
+
<br>
Vérification :
 
 
 
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
[root@Fedora22x64 ~]# systemctl status xe-linux-distribution.service
+
root@Demo-Model-Ikoula:~# vgs
● xe-linux-distribution.service - LSB: XenServer Virtual Machine daemon providing host integration services
+
  VG  #PV #LV #SN Attr  VSize  VFree
  Loaded: loaded (/etc/rc.d/init.d/xe-linux-distribution)
+
   vg01  1  2  0 wz--n- 14.07g
  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  ]
 
 
</syntaxhighlight>
 
</syntaxhighlight>
 
+
<br>
Vous pouvez supprimer les fichiers de l'installation :
 
 
 
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
[root@Fedora22x64 ~]# rm -rf linux65*
+
root@Demo-Model-Ikoula:~# lvs
[root@Fedora22x64 ~]#
+
  LV  VG  Attr      LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
 +
  root vg01 -wi-ao---- 13.14g
 +
  swap vg01 -wi-ao---- 952.00m
 
</syntaxhighlight>
 
</syntaxhighlight>
  
Nous ajoutons les lignes suivantes dans /etc/sysctl.conf (on désactive IPv6 et on applique certaines optimisations):
 
  
<syntaxhighlight lang="bash">
+
* Configuration des locales
#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
+
Afin de pouvoir faire fonctionner certains scripts dont celui pour le redimensionnement nous devons basculer les loacles systèmes en anglais pour éviter ainsi une traduction des unités de tailles des systèmes de fichiers et partitions par l'utilitaire gdisk.
vm.swappiness = 0
 
  
#Improve memory management
+
<syntaxhighlight lang="bash">
vm.dirty_ratio = 60
+
localectl set-locale en_US.utf8
vm.dirty_background_ratio = 2
+
</syntaxhighlight>
#No overcommitment of available memory
+
<br>
vm.overcommit_ratio = 0
+
<br>
vm.overcommit_memory = 0
+
PS : ne changez rien d'autre, si vous avez configuré votre système pour utiliser un clavier français vous resterez bien en _AZERTY_
 
 
#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
 
</syntaxhighlight>
 
  
Puis nous exécutons la commande "sysctl -p" :
+
* Installation des paquets cloud-init
  
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
[root@Fedora22x64 init.d]# sysctl -p
+
root@Demo-Model-Ikoula:~# apt install cloud-init cloud-guest-utils parted gdisk
net.ipv4.conf.all.arp_notify = 1
+
Reading package lists... Done
net.ipv6.conf.all.disable_ipv6 = 1
+
Building dependency tree
net.ipv6.conf.default.disable_ipv6 = 1
+
Reading state information... Done
net.ipv6.conf.lo.disable_ipv6 = 1
+
parted is already the newest version (3.2-17).
net.ipv6.conf.eth0.disable_ipv6 = 1
+
The following additional packages will be installed:
vm.swappiness = 0
+
  libyaml-0-2 python3-blinker python3-configobj python3-jinja2 python3-json-pointer python3-jsonpatch python3-jwt python3-markupsafe python3-oauthlib python3-prettytable python3-yaml
vm.dirty_ratio = 60
+
Suggested packages:
vm.dirty_background_ratio = 2
+
  python-blinker-doc python-configobj-doc python-jinja2-doc python3-crypto
vm.overcommit_ratio = 0
+
The following NEW packages will be installed:
vm.overcommit_memory = 0
+
  cloud-guest-utils cloud-init gdisk libyaml-0-2 python3-blinker python3-configobj python3-jinja2 python3-json-pointer python3-jsonpatch python3-jwt python3-markupsafe python3-oauthlib python3-prettytable
kernel.shmmax = 268435456
+
  python3-yaml
kernel.shmall = 268435456
+
0 upgraded, 14 newly installed, 0 to remove and 0 not upgraded.
vm.min_free_kbytes = 65535
+
Need to get 997 kB of archives.
 +
After this operation, 4,660 kB of additional disk space will be used.
 +
Do you want to continue? [Y/n]
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
<br>
 +
<br>
 +
- Le paquet cloud-init vous permettra d'utiliser les scripts gérant la mise à jour du hostname de l'instance, du mots de passe root de celle-ci ainsi que de l'injection de potentiel clé ssh présente sur votre compte Cloud Ikoula One.
 +
<br>
 +
- Le paquet cloud-guest-utils permet quant à lui d'utiliser un quatrième script autorisant le redimensionnement au démarrage du partitionnement et du système de fichier de l'instance.
 +
<br>
 +
- Le paquet gdisk est utilisé par le paquet cloud-guest-utils durant l’agrandissement du système de fichier et de partition.
 +
<br>
 +
- Le paquet parted quand à lui permettra de facilement avoir accès à la table de partition au format GPT.
 +
<br>
 +
<br>
 +
PS : pour les distribution de basé sur les RPM comme CentOS le paquet cloud-guest-utils est remplacé par le paquet cloud-growpart.
 +
  
On modifie la politique SELinux pour la passer de "enforcing" à "permissive" :
+
* Configuration de la partie cloud-init
  
<syntaxhighlight lang="bash">
+
Après installation des paquets nécessaires nous allons procéder à la configuration et l'optimisation de celle-ci.
[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
 
</syntaxhighlight>
 
  
Si votre système dispose de règles parefeu d'origine, veuillez stoppper et désactiver celui-ci, exemple dans notre cas :
+
6 - Configuration et optimisation du fichier de configuration principale, le fichier est placé dans /etc/cloud/coud.cfg
  
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
[root@Fedora22x64 ~]# systemctl stop firewalld.service
+
# The top level settings are used as module
[root@Fedora22x64 ~]# systemctl disable firewalld.service
+
# and system configuration.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
 
Removed symlink /etc/systemd/system/basic.target.wants/firewalld.service.
 
</syntaxhighlight>
 
  
On vérifie qu'il n'y a plus de règles de chargées :
+
# A set of users which may be applied and/or used by various modules
 +
# when a 'default' entry is found it will reference the 'default_user'
 +
# from the distro configuration specified below
 +
users:
 +
  - default
  
<syntaxhighlight lang="bash">
+
# If this is set, 'root' will not be able to ssh in and they
[root@Fedora22x64 ~]# iptables -vnL
+
# will get a message to login instead as the above $user (ubuntu)
Chain INPUT (policy ACCEPT 34 packets, 2240 bytes)
+
disable_root: false
pkts bytes target    prot opt in    out    source              destination
 
  
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
+
# This will cause the set+update hostname module to not operate (if true)
pkts bytes target    prot opt in    out    source              destination
+
preserve_hostname: false
  
Chain OUTPUT (policy ACCEPT 32 packets, 3568 bytes)
+
# Example datasource config
pkts bytes target    prot opt in    out    source              destination
+
# datasource:
</syntaxhighlight>
+
#    Ec2:
 +
#      metadata_urls: [ 'blah.com' ]
 +
#      timeout: 5 # (defaults to 50 seconds)
 +
#      max_wait: 10 # (defaults to 120 seconds)
  
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 :
+
# The modules that run in the 'init' stage
 +
cloud_init_modules:
 +
- migrator
 +
- bootcmd
 +
- write-files
 +
- resizefs
 +
- set_hostname
 +
- update_hostname
 +
- update_etc_hosts
 +
- ca-certs
 +
- rsyslog
 +
- users-groups
 +
- 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) :
+
# The modules that run in the 'config' stage
 +
cloud_config_modules:
 +
# Emit the cloud config ready event
 +
# this can be used by upstart jobs for 'start on cloud-config'.
 +
- emit_upstart
 +
- mounts
 +
- ssh-import-id
 +
- locale
 +
- set-passwords
 +
- grub-dpkg
 +
- apt-pipelining
 +
- apt-configure
 +
- package-update-upgrade-install
 +
- landscape
 +
- timezone
 +
- puppet
 +
- chef
 +
- salt-minion
 +
- mcollective
 +
- disable-ec2-metadata
 +
- runcmd
 +
- byobu
  
<syntaxhighlight lang="bash">
+
# The modules that run in the 'final' stage
[root@Fedora22x64 ~]# wget http://mirror02.ikoula.com/priv/citrix/scripts/systemd/fedora22/cloud-set-guest-scripts.tar.gz
+
cloud_final_modules:
--2015-10-06 09:57:13--  http://mirror02.ikoula.com/priv/citrix/scripts/systemd/fedora22/cloud-set-guest-scripts.tar.gz
+
- rightscale_userdata
Résolution de mirror02.ikoula.com (mirror02.ikoula.com)… 80.93.XX.XX, 2a00:c70:1:80:93:XX:XX:1
+
- scripts-per-once
Connexion à mirror02.ikoula.com (mirror02.ikoula.com)|80.93.XX.XX|:80… connecté.
+
- scripts-per-boot
requête HTTP transmise, en attente de la réponse… 200 OK
+
- scripts-per-instance
Taille : 2965 (2,9K) [application/x-gzip]
+
- scripts-user
Sauvegarde en : « cloud-set-guest-scripts.tar.gz »
+
- ssh-authkey-fingerprints
 +
  - keys-to-console
 +
- phone-home
 +
- final-message
 +
- power-state-change
  
cloud-set-guest-scripts.tar.gz                100%[===================================================================================================>]  2,90K  --.-KB/s  ds 0s
+
# System and/or distro specific settings
 +
# (not accessible to handlers/transforms)
 +
system_info:
 +
  # This will affect which distro class gets used
 +
  distro: debian
 +
  default_user:
 +
    name: root
  
2015-10-06 09:57:13 (279 MB/s) — « cloud-set-guest-scripts.tar.gz » sauvegardé [2965/2965]
+
  # Other config here will be given to the distro class and/or path classes
 +
  paths:
 +
      cloud_dir: /var/lib/cloud/
 +
      templates_dir: /etc/cloud/templates/
 +
  package_mirrors:
 +
    - arches: [amd64]
 +
      failsafe:
 +
        primary: http://mirror.debian.ikoula.com/debian/
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
<br>
 +
7 - Configuration et optimisation du logging, le fichier est placé dans /etc/cloud/cloud.cfg.d/05_logging.cfg
 +
<br>
 +
Vous pouvez si vous le désirez limité la façon dont Cloud Init log les évenements sur votre instance en modifiant au besoin le niveau de LOG qui est fixé à DEBUG.
 +
<br>
 +
Cette FAQ vous explique ce que vous pouvez utilisez, nous recommandons l'utilisation 'da minima le niveau Warning permettant de détecter les erreurs mais ne vous poulluant pas de log si tout va bien.
 +
<br>
 +
Documentation Logging Python https://docs.python.org/3/library/logging.config.html#configuration-file-format
 +
<br>
 +
<syntaxhighlight lang="bash">
 +
## This yaml formated config file handles setting
 +
## logger information.  The values that are necessary to be set
 +
## are seen at the bottom.  The top '_log' are only used to remove
 +
## redundency in a syslog and fallback-to-file case.
 +
##
 +
## The 'log_cfgs' entry defines a list of logger configs
 +
## Each entry in the list is tried, and the first one that
 +
## works is used.  If a log_cfg list entry is an array, it will
 +
## be joined with '\n'.
 +
_log:
 +
- &log_base |
 +
  [loggers]
 +
  keys=root,cloudinit
  
- Extraire le contenu :
+
  [handlers]
 +
  keys=consoleHandler,cloudLogHandler
  
<syntaxhighlight lang="bash">
+
  [formatters]
[root@Fedora22x64 ~]# tar xvzf cloud-set-guest-scripts.tar.gz
+
  keys=simpleFormatter,arg0Formatter
cloud-set-guest-hostname
+
 
cloud-set-guest-hostname.service
+
  [logger_root]
cloud-set-guest-password
+
  level=DEBUG
cloud-set-guest-password.service
+
  handlers=consoleHandler,cloudLogHandler
cloud-set-guest-sshkey
 
cloud-set-guest-sshkey.service
 
cloud-set-guest-userdata
 
cloud-set-guest-userdata.service
 
readme.txt
 
</syntaxhighlight>
 
  
- Déplacez les fichiers .service dans /lib/systemd/system/ :
+
  [logger_cloudinit]
 +
  level=DEBUG
 +
  qualname=cloudinit
 +
  handlers=
 +
  propagate=1
  
<syntaxhighlight lang="bash">
+
  [handler_consoleHandler]
[root@Fedora22x64 ~]# mv cloud-set-guest-*.service /lib/systemd/system/
+
  class=StreamHandler
[root@Fedora22x64 ~]#
+
  level=WARNING
</syntaxhighlight>
+
  formatter=arg0Formatter
 +
  args=(sys.stderr,)
  
- Déplacez les autres fichiers dans /etc/init.d/
+
  [formatter_arg0Formatter]
 +
  format=%(asctime)s - %(filename)s[%(levelname)s]: %(message)s
  
<syntaxhighlight lang="bash">
+
  [formatter_simpleFormatter]
[root@Fedora22x64 ~]# rm -f cloud-set-guest-scripts.tar.gz
+
  format=[CLOUDINIT] %(filename)s[%(levelname)s]: %(message)s
[root@Fedora22x64 ~]# mv cloud-set-guest-* /etc/init.d/
+
- &log_file |
[root@Fedora22x64 ~]#
+
  [handler_cloudLogHandler]
</syntaxhighlight>
+
  class=FileHandler
 +
  level=DEBUG
 +
  formatter=arg0Formatter
 +
  args=('/var/log/cloud-init.log',)
 +
- &log_syslog |
 +
  [handler_cloudLogHandler]
 +
  class=handlers.SysLogHandler
 +
  level=DEBUG
 +
  formatter=simpleFormatter
 +
  args=("/dev/log", handlers.SysLogHandler.LOG_USER)
  
- On active nos unités de services :
+
log_cfgs:
 +
# Array entries in this list will be joined into a string
 +
# that defines the configuration.
 +
#
 +
# If you want logs to go to syslog, uncomment the following line.
 +
# - [ *log_base, *log_syslog ]
 +
#
 +
# The default behavior is to just log to a file.
 +
# This mechanism that does not depend on a system service to operate.
 +
- [ *log_base, *log_file ]
 +
# A file path can also be used.
 +
# - /etc/log.conf
  
<syntaxhighlight lang="bash">
+
# This tells cloud-init to redirect its stdout and stderr to
[root@Fedora22x64 ~]# systemctl enable cloud-set-guest-hostname.service
+
# 'tee -a /var/log/cloud-init-output.log' so the user can see output
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.
+
# there without needing to look on the console.
[root@Fedora22x64 ~]# systemctl enable cloud-set-guest-password.service
+
output: {all: '| tee -a /var/log/cloud-init-output.log'}
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.
 
 
</syntaxhighlight>
 
</syntaxhighlight>
 
+
<br>
 +
8 - Configuration et optimisation pour le Cloud Ikoula One, le fichier est placé dans /etc/cloud/coud.cfg.d/99_cloudstack.cfg
 +
<br>
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
[root@Fedora22x64 ~]# systemctl -l | grep cloud-set
+
datasource:
   cloud-set-guest-hostname.service                                                          loaded active exited    CloudStack Set Guest Hostname
+
   CloudStack: {}
   cloud-set-guest-password.service                                                          loaded active exited    CloudStack Set Guest Password Reset
+
   None: {}
  cloud-set-guest-sshkey.service                                                            loaded active exited    CloudStack Set Guest Ssh Key
+
datasource_list:
   cloud-set-guest-userdata.service                                                          loaded active exited    CloudStack Set Guest Userdata
+
   - CloudStack
 
</syntaxhighlight>
 
</syntaxhighlight>
 
+
<br>
- On purge le fichier de leases DHCP (chemin et nom de fichier à adapter au besoin) :
+
9 - Mise en place des scripts cloud-init propre à Ikoula
 
+
<br>
 +
Vous pouvez récupérer le nécessaire à cet url : http://mirror.ikoula.com/pub/cio/
 +
<br>
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
[root@fedora22 ~]# > /var/lib/dhclient/dhclient.leases
+
wget -nv -r -nH --cut-dirs=2 ftp://mirror.ikoula.com/pub/cio/cloud/ -P /var/lib/
 
</syntaxhighlight>
 
</syntaxhighlight>
 
+
<br>
- On purge les fichiers de logs principaux ainsi que l'historique de commande :
+
10 - Rendre exécutable les scripts :
 
+
<br>
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
[root@Fedora22x64 ~]# list=`find /var/log/ -type f`
+
chmod +x /var/lib/lib/cloud/scripts/per-boot/* /var/lib/lib/scripts/per-once/*
[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
 
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
<br>
  
- On créé le modèle de notre instance stoppée :
+
11 - Nettoyage de votre système et fin de la personalisation
 
 
Sur l'interface Cloud Ikoula, allez dans "Instances" puis cliquez sur le nom de votre instance
 
 
 
Cliquez sur "Voir Volumes" :
 
 
 
[[Fichier:Create_image_cloudikoula_20.png]]
 
 
 
Cliquez sur le nom de votre volume ROOTDISK :
 
  
[[Fichier:Create_image_cloudikoula_21.png]]
+
A partir de cette étape vous êtres libre d'installer et configurer au besoin d'autre paquets.
 +
<br>
 +
Vous pouvez nettoyer tous les fichiers de caches et de log afin de rendre vierge le système pour l'étape de création de modèle.
 +
<br>
 +
<br>
 +
PS : Nous vous recommandons de procédez avant nettoyage à une confirmation d'un mot de passe générique vous permettant si pour une raison inconu ou un oubli lors du'une étape de configuration que le mot de passe/et ou la clé SSH normalement fourni par Cloud Ikoula One ne soit pas valide vous ne parviendrez pas à vous connecter à l'instance.
  
Cliquez sur le bouton "Créer un modèle" :
+
==Création du modèle==
  
[[Fichier:Create_image_cloudikoula_22.png]]
+
Maintenant que notre système de base est prêt nous pouvons procédez à l'extinction de l'instance et [[Créer un modèle à partir de mon Instance]]
  
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:Creation_model-cloud-16.png]]
  
[[Fichier:Create_image_cloudikoula_23.png]]
 
  
Une fois la création de votre modèle terminée :
+
Une fois enregistré dans la zone de déploiement de votre instance référence votre template est visible dans la partie Modèles de votre interface de gestion Cloud Ikoula One
  
[[Fichier:Create_image_cloudikoula_24.png]]
+
[[Fichier:Creation_model-cloud-17.png]]
  
On peut retrouver celui-ci dans "Modèles" :
 
  
[[Fichier:Create_image_cloudikoula_25.png]]
+
Vous pouvez vérifier la taille et les capacités dynamique et de personnalisation du mots de passe via l'orchestrateur directement depuis la page de votre template
  
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:Creation_model-cloud-18.png]]
  
[[Fichier:Create_image_cloudikoula_26.png]]
+
==Conclusion==
  
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 pourrez ainsi dorénavant créer vos propres modèles selon vos besoins et bénéficier d'une complète compatibilité avec le Cloud Ikoula One.
  
[[Fichier:Create_image_cloudikoula_27.png]]
 
  
 +
Cet article vous a semblé utile ? <vote />
  
 
[[category:cloudstack]]
 
[[category:cloudstack]]
 
[[category:cloud public]]
 
[[category:cloud public]]
 
[[category:cloud privé]]
 
[[category:cloud privé]]
 +
[[category:Cloud]]
 +
<br />
 +
<comments />

Version actuelle datée du 20 septembre 2021 à 15:00

fr:Comment creer un modele compatible Cloud Ikoula he:איך ליצור מודל תואם ענן Ikoula ro:Cum pentru a crea un model compatibil nor Ikoula ru:Как создать совместимый модель облачных Ikoula pl:Jak utworzyć zgodnego modelu Cloud Ikoula ja:雲 Ikoula の互換性のあるモデルを作成する方法 ar:كيفية إنشاء نموذج متوافق مع "عكلة سحابة" zh:如何创建一个兼容模型云 Ikoula de:Wie erstellen Sie ein kompatibles Modell Cloud Ikoula nl:Hoe maak een compatibel model Cloud Ikoula it:Come creare un modello compatibile Cloud Ikoula pt:Como criar um modelo compatível nuvem Ikoula es:Cómo crear un modelo compatible nube Ikoula en:How create a compatible model Cloud Ikoula

Description

Nous allons suivre le déroulé complet de la création d'un modèle compatible avec le Cloud Ikoula One à partir d'une installation _from scratch_ (à partir d'une iso). Dans notre exemple nous allons utiliser une iso _netinstall_ de Debian à jour, nous expliquerons suite à l'installation les quelques étapes nécessaires pour rendre pleinnement compatible votre modèle.

Préparatifs

  • Récupérer l'image ISO de votre choix, nous utiliserons l'image minimal _netinstall_ de Debian 9 'stretch' dans notre exemple


Enregsitrement de l'ISO

Creation model-cloud-00.png


  • Cliquez sur modèles

Creation model-cloud-01.png


  • Sélectionnez la vue ISO

Creation model-cloud-02.png


  • Cliquez sur _Enregistrer ISO"

Creation model-cloud-03.png


  • Renseignez les informations nécessaires

Creation model-cloud-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, Debian 9 n'était pas disponible dans la liste nous avons donc sélectionné "Other Linux (64-bit)"
7 - Cochez cette case si vous souhaitez que votre ISO puisse être téléchargé une fois créée

PS : L'url doit être une url publique accessible sans authentification, vous pouvez utilisez votre espace Ikeepincloud.


  • Une fois votre ISO enregistré, patientez le temps que le status prêt soit à _YES_

Creation model-cloud-05.png

Déploiement de notre base

  • Cliquez sur _Instances_ dans le menu de gauche

Creation model-cloud-06.png


  • Cliquez sur _Ajouter une instance_

Creation model-cloud-07.png


  • Sélectionner la zone dans laquelle votre ISO à été enregistrée

Creation model-cloud-08.png


  • Sélectionnez ISO afin de charger votre iso au démarrage de l'instance

Creation model-cloud-09.png


  • Choisissez votre ISO dans la catégorie _Mes ISOs_

Creation model-cloud-10.png


  • Sélectionnez une offre de calcul, cette offre ne sera pas enregistré dans le modèle.


  • Ajouter une offre de disque à votre Base à la taille voulue, pour cet exemple nous choisissons 15 Go

Creation model-cloud-11.png


  • Poursuivez les étapes classiques pour le déploiement de votre instance (affinité, réseau, et descriptif) et déployez votre instance.

Modification de notre base

Une fois votre instance démarrer il vous faudra vous connecter à l'aide du KVM virtuel pour procéder à l'installation du système et à sa configuration minimale (réseau, mots de passe, etc).


  • Pour vous connecter une fois avoir sélectionner votre instance cliquez sur l'icône en haut

Creation model-cloud-12.png


Vous devriez avoir accès à votre instance depuis une pop-up au travers de laquelle vous pourrez procéder à l'installation de votre système.


Creation model-cloud-13.png


Cette fenêtre est en fait une console KVM vers votre instance, vous permettant ainsi de prendre la main dessus même si vous n'avez pas d'accès réseau à celle-ci.

Installation de votre base et personnalisation

Voici les quelques points importants durant l'installation de la base pour la création d'un modèle compatible Cloud Ikoula One :

1 - Réseau : lors de l'installation un bail DHCP est offert à l'instance, laisser la configuration automatique de votre réseau s’effectuer par l'installateur
2 - Partitionnement : Nous recommandons vivement l'utilisation de LVM pour permettre plus de flexibilité à votre modèle, vous trouverez ci-joint un plan de partitionnement en exemple.

	Table de partition du disque xvda en _GPT_
		- Partition de type _ext2_ de 1Go nommé boot avec comme point de montage /boot
		- Groupe de volume vg01 contenant : 
			- Volume logique swap de 1Go
			- Volume logique root du restant de votre disque
		- Partition du type _swap_
		- Partition de type _ext4_ nommé root avec comme point de montage /

3 - Installer un serveur ssh et le configurer pour permettre la connexion
4 - Ouvrir et rediriger les ports nécessaires à la connexion ssh et à l'installation de paquets.

  • Après installation du système de base détacher l'iso

Creation model-cloud-14.png


  • Connectez-vous à l'instance après un dernier redémarrage du système avec l'ISO détaché

Creation model-cloud-15.png

Ps : Dans notre exemple nous utliserons Putty https://putty.org/
Vous pouvez ainsi vérifier que tout soit en ordre au niveau du disque et des partitions :

root@Demo-Model-Ikoula:~# lsblk
NAME          MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0            11:0    1 1024M  0 rom
xvda          202:0    0   15G  0 disk
├─xvda1       202:1    0  953M  0 part /boot
└─xvda2       202:2    0 14.1G  0 part
  ├─vg01-swap 254:0    0  952M  0 lvm  [SWAP]
  └─vg01-root 254:1    0 13.1G  0 lvm  /


root@Demo-Model-Ikoula:~# fdisk -l
Disk /dev/xvda: 15 GiB, 16106127360 bytes, 31457280 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 4F115A5C-B4BC-4910-952A-52DA2BAF6F91

Device       Start      End  Sectors  Size Type
/dev/xvda1    2048  1953791  1951744  953M Linux filesystem
/dev/xvda2 1953792 31455231 29501440 14.1G Linux LVM


Disk /dev/mapper/vg01-swap: 952 MiB, 998244352 bytes, 1949696 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/mapper/vg01-root: 13.1 GiB, 14105444352 bytes, 27549696 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


root@Demo-Model-Ikoula:~# pvs
  PV         VG   Fmt  Attr PSize  PFree
  /dev/xvda2 vg01 lvm2 a--  14.07g    0


root@Demo-Model-Ikoula:~# vgs
  VG   #PV #LV #SN Attr   VSize  VFree
  vg01   1   2   0 wz--n- 14.07g


root@Demo-Model-Ikoula:~# lvs
  LV   VG   Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root vg01 -wi-ao----  13.14g
  swap vg01 -wi-ao---- 952.00m


  • Configuration des locales

Afin de pouvoir faire fonctionner certains scripts dont celui pour le redimensionnement nous devons basculer les loacles systèmes en anglais pour éviter ainsi une traduction des unités de tailles des systèmes de fichiers et partitions par l'utilitaire gdisk.

localectl set-locale en_US.utf8



PS : ne changez rien d'autre, si vous avez configuré votre système pour utiliser un clavier français vous resterez bien en _AZERTY_


  • Installation des paquets cloud-init
root@Demo-Model-Ikoula:~# apt install cloud-init cloud-guest-utils parted gdisk
Reading package lists... Done
Building dependency tree
Reading state information... Done
parted is already the newest version (3.2-17).
The following additional packages will be installed:
  libyaml-0-2 python3-blinker python3-configobj python3-jinja2 python3-json-pointer python3-jsonpatch python3-jwt python3-markupsafe python3-oauthlib python3-prettytable python3-yaml
Suggested packages:
  python-blinker-doc python-configobj-doc python-jinja2-doc python3-crypto
The following NEW packages will be installed:
  cloud-guest-utils cloud-init gdisk libyaml-0-2 python3-blinker python3-configobj python3-jinja2 python3-json-pointer python3-jsonpatch python3-jwt python3-markupsafe python3-oauthlib python3-prettytable
  python3-yaml
0 upgraded, 14 newly installed, 0 to remove and 0 not upgraded.
Need to get 997 kB of archives.
After this operation, 4,660 kB of additional disk space will be used.
Do you want to continue? [Y/n]



- Le paquet cloud-init vous permettra d'utiliser les scripts gérant la mise à jour du hostname de l'instance, du mots de passe root de celle-ci ainsi que de l'injection de potentiel clé ssh présente sur votre compte Cloud Ikoula One.
- Le paquet cloud-guest-utils permet quant à lui d'utiliser un quatrième script autorisant le redimensionnement au démarrage du partitionnement et du système de fichier de l'instance.
- Le paquet gdisk est utilisé par le paquet cloud-guest-utils durant l’agrandissement du système de fichier et de partition.
- Le paquet parted quand à lui permettra de facilement avoir accès à la table de partition au format GPT.

PS : pour les distribution de basé sur les RPM comme CentOS le paquet cloud-guest-utils est remplacé par le paquet cloud-growpart.


  • Configuration de la partie cloud-init

Après installation des paquets nécessaires nous allons procéder à la configuration et l'optimisation de celle-ci.

6 - Configuration et optimisation du fichier de configuration principale, le fichier est placé dans /etc/cloud/coud.cfg

# The top level settings are used as module
# and system configuration.

# A set of users which may be applied and/or used by various modules
# when a 'default' entry is found it will reference the 'default_user'
# from the distro configuration specified below
users:
   - default

# If this is set, 'root' will not be able to ssh in and they
# will get a message to login instead as the above $user (ubuntu)
disable_root: false

# This will cause the set+update hostname module to not operate (if true)
preserve_hostname: false

# Example datasource config
# datasource:
#    Ec2:
#      metadata_urls: [ 'blah.com' ]
#      timeout: 5 # (defaults to 50 seconds)
#      max_wait: 10 # (defaults to 120 seconds)

# The modules that run in the 'init' stage
cloud_init_modules:
 - migrator
 - bootcmd
 - write-files
 - resizefs
 - set_hostname
 - update_hostname
 - update_etc_hosts
 - ca-certs
 - rsyslog
 - users-groups
 - ssh

# The modules that run in the 'config' stage
cloud_config_modules:
# Emit the cloud config ready event
# this can be used by upstart jobs for 'start on cloud-config'.
 - emit_upstart
 - mounts
 - ssh-import-id
 - locale
 - set-passwords
 - grub-dpkg
 - apt-pipelining
 - apt-configure
 - package-update-upgrade-install
 - landscape
 - timezone
 - puppet
 - chef
 - salt-minion
 - mcollective
 - disable-ec2-metadata
 - runcmd
 - byobu

# The modules that run in the 'final' stage
cloud_final_modules:
 - rightscale_userdata
 - scripts-per-once
 - scripts-per-boot
 - scripts-per-instance
 - scripts-user
 - ssh-authkey-fingerprints
 - keys-to-console
 - phone-home
 - final-message
 - power-state-change

# System and/or distro specific settings
# (not accessible to handlers/transforms)
system_info:
   # This will affect which distro class gets used
   distro: debian
   default_user:
     name: root

   # Other config here will be given to the distro class and/or path classes
   paths:
      cloud_dir: /var/lib/cloud/
      templates_dir: /etc/cloud/templates/
   package_mirrors:
     - arches: [amd64]
       failsafe:
         primary: http://mirror.debian.ikoula.com/debian/


7 - Configuration et optimisation du logging, le fichier est placé dans /etc/cloud/cloud.cfg.d/05_logging.cfg
Vous pouvez si vous le désirez limité la façon dont Cloud Init log les évenements sur votre instance en modifiant au besoin le niveau de LOG qui est fixé à DEBUG.
Cette FAQ vous explique ce que vous pouvez utilisez, nous recommandons l'utilisation 'da minima le niveau Warning permettant de détecter les erreurs mais ne vous poulluant pas de log si tout va bien.
Documentation Logging Python https://docs.python.org/3/library/logging.config.html#configuration-file-format

## This yaml formated config file handles setting
## logger information.  The values that are necessary to be set
## are seen at the bottom.  The top '_log' are only used to remove
## redundency in a syslog and fallback-to-file case.
##
## The 'log_cfgs' entry defines a list of logger configs
## Each entry in the list is tried, and the first one that
## works is used.  If a log_cfg list entry is an array, it will
## be joined with '\n'.
_log:
 - &log_base |
   [loggers]
   keys=root,cloudinit

   [handlers]
   keys=consoleHandler,cloudLogHandler

   [formatters]
   keys=simpleFormatter,arg0Formatter

   [logger_root]
   level=DEBUG
   handlers=consoleHandler,cloudLogHandler

   [logger_cloudinit]
   level=DEBUG
   qualname=cloudinit
   handlers=
   propagate=1

   [handler_consoleHandler]
   class=StreamHandler
   level=WARNING
   formatter=arg0Formatter
   args=(sys.stderr,)

   [formatter_arg0Formatter]
   format=%(asctime)s - %(filename)s[%(levelname)s]: %(message)s

   [formatter_simpleFormatter]
   format=[CLOUDINIT] %(filename)s[%(levelname)s]: %(message)s
 - &log_file |
   [handler_cloudLogHandler]
   class=FileHandler
   level=DEBUG
   formatter=arg0Formatter
   args=('/var/log/cloud-init.log',)
 - &log_syslog |
   [handler_cloudLogHandler]
   class=handlers.SysLogHandler
   level=DEBUG
   formatter=simpleFormatter
   args=("/dev/log", handlers.SysLogHandler.LOG_USER)

log_cfgs:
# Array entries in this list will be joined into a string
# that defines the configuration.
#
# If you want logs to go to syslog, uncomment the following line.
# - [ *log_base, *log_syslog ]
#
# The default behavior is to just log to a file.
# This mechanism that does not depend on a system service to operate.
 - [ *log_base, *log_file ]
# A file path can also be used.
# - /etc/log.conf

# This tells cloud-init to redirect its stdout and stderr to
# 'tee -a /var/log/cloud-init-output.log' so the user can see output
# there without needing to look on the console.
output: {all: '| tee -a /var/log/cloud-init-output.log'}


8 - Configuration et optimisation pour le Cloud Ikoula One, le fichier est placé dans /etc/cloud/coud.cfg.d/99_cloudstack.cfg

datasource:
  CloudStack: {}
  None: {}
datasource_list:
  - CloudStack


9 - Mise en place des scripts cloud-init propre à Ikoula
Vous pouvez récupérer le nécessaire à cet url : http://mirror.ikoula.com/pub/cio/

wget -nv -r -nH --cut-dirs=2 ftp://mirror.ikoula.com/pub/cio/cloud/ -P /var/lib/


10 - Rendre exécutable les scripts :

chmod +x /var/lib/lib/cloud/scripts/per-boot/* /var/lib/lib/scripts/per-once/*


11 - Nettoyage de votre système et fin de la personalisation

A partir de cette étape vous êtres libre d'installer et configurer au besoin d'autre paquets.
Vous pouvez nettoyer tous les fichiers de caches et de log afin de rendre vierge le système pour l'étape de création de modèle.

PS : Nous vous recommandons de procédez avant nettoyage à une confirmation d'un mot de passe générique vous permettant si pour une raison inconu ou un oubli lors du'une étape de configuration que le mot de passe/et ou la clé SSH normalement fourni par Cloud Ikoula One ne soit pas valide vous ne parviendrez pas à vous connecter à l'instance.

Création du modèle

Maintenant que notre système de base est prêt nous pouvons procédez à l'extinction de l'instance et Créer un modèle à partir de mon Instance

Creation model-cloud-16.png


Une fois enregistré dans la zone de déploiement de votre instance référence votre template est visible dans la partie Modèles de votre interface de gestion Cloud Ikoula One

Creation model-cloud-17.png


Vous pouvez vérifier la taille et les capacités dynamique et de personnalisation du mots de passe via l'orchestrateur directement depuis la page de votre template

Creation model-cloud-18.png

Conclusion

Vous pourrez ainsi dorénavant créer vos propres modèles selon vos besoins et bénéficier d'une complète compatibilité avec le Cloud Ikoula One.


Cet article vous a semblé utile ?

0



Vous n'êtes pas autorisé à publier de commentaire.