Différences entre versions de « Comment creer un modele compatible Cloud Ikoula »
Ligne 411 : | Ligne 411 : | ||
− | - On retire la ligne ''MACADDR'' du fichier /etc/sysconfig/network-scripts/ifcfg- | + | - On retire la ligne ''MACADDR'' du fichier /etc/sysconfig/network-scripts/ifcfg-eth0 (de même, à adapter selon votre distribution). |
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
− | [root@fedora22 ~]# | + | [root@fedora22 ~]# grep -v ^MACADDR ifcfg-eth0 > ifcfg-eth0.tmp && rm -f ifcfg-eth0 && mv ifcfg-eth0.tmp ifcfg-eth0 |
</syntaxhighlight> | </syntaxhighlight> | ||
Version du 26 novembre 2015 à 18:40
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 La procédure ci-dessous explique comment créer un modèle compatible avec le cloud public ou le cloud privé à 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 de gestion :
Cliquez sur "Modèles" dans le menu gauche :
Sélectionnez la vue "ISO" :
Cliquez sur le bouton "Enregistrer ISO" :
Puis renseignez les champs :
- Indiquez le Nom que vous souhaitez pour votre image
- Renseignez une description pour votre image
- Saisissez/collez l'url HTTP (non https) complète du fichier iso
- Sélectionnez la zone Cloud Ikoula pour laquelle votre image sera disponible
- Cochez cette case si vous souhaitez qu'une instance puisse démarrer depuis votre iso
- 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)".
- 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" :
Cliquez sur "Instances" dans le menu gauche :
Cliquez sur le bouton "Ajouter une instance" :
Sélectionnez la zone de déploiement de votre instance :
Sélectionner ISO puis cliquez sur "Suivant"
Cliquez sur l'onglet "Mes ISOs" et cochez l'iso que vous venez de créer :
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 :
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) :
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) :
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 :
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" :
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.
Cliquez sur le bouton "Voir la console" pour voir votre système démarré :
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 public.
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 (à adapter en fonction de votre gestionnaire de paquets) :
[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@TM-Fedora22KB ~]# dnf install vim-enhanced rsync curl wget cloud-init puppet facter
Vérification de l'expiration des métadonnées effectuée il y a 0:00:27 sur Thu Nov 26 12:32:31 2015.
Le paquet rsync-3.1.1-6.fc22.x86_64 est déjà installé, ignorer
Le paquet curl-7.40.0-7.fc22.x86_64 est déjà installé, ignorer
Le paquet wget-1.16.3-1.fc22.x86_64 est déjà installé, ignorer
Dépendances résolues.
===============================================================================================================================================================================================================================================================================
Paquet Architecture Version Dépôt Taille
===============================================================================================================================================================================================================================================================================
Installation de :
PyYAML x86_64 3.11-9.fc22 updates 168 k
cloud-init x86_64 0.7.6-3.fc22 fedora 434 k
facter x86_64 2.4.1-1.fc22 fedora 105 k
gpm-libs x86_64 1.20.7-6.fc22 fedora 36 k
hiera noarch 1.3.4-3.fc22 updates 29 k
libselinux-ruby x86_64 2.3-10.fc22 updates 135 k
libyaml x86_64 0.1.6-6.fc22 fedora 58 k
puppet noarch 4.1.0-5.fc22 updates 1.2 M
python-configobj noarch 5.0.5-2.fc22 fedora 65 k
python-jsonpatch noarch 1.2-5.fc22 fedora 19 k
python-jsonpointer noarch 1.9-2.fc22 updates 17 k
python-prettytable noarch 0.7.2-4.fc22 fedora 42 k
ruby x86_64 2.2.3-44.fc22 updates 74 k
ruby-augeas x86_64 0.5.0-6.fc22 fedora 28 k
ruby-irb noarch 2.2.3-44.fc22 updates 93 k
ruby-libs x86_64 2.2.3-44.fc22 updates 2.9 M
ruby-shadow x86_64 1.4.1-26.fc22 fedora 18 k
rubygem-bigdecimal x86_64 1.2.6-44.fc22 updates 86 k
rubygem-io-console x86_64 0.4.3-44.fc22 updates 56 k
rubygem-json x86_64 1.8.3-100.fc22 updates 65 k
rubygem-pathspec noarch 0.0.2-2.fc22 updates 17 k
rubygem-psych x86_64 2.0.8-44.fc22 updates 85 k
rubygem-rdoc noarch 4.2.0-44.fc22 updates 481 k
rubygem-rgen noarch 0.6.6-2.fc21 fedora 84 k
rubygems noarch 2.4.8-100.fc22 updates 269 k
rubypick noarch 1.1.1-4.fc22 updates 11 k
vim-common x86_64 2:7.4.827-1.fc22 updates 6.0 M
vim-enhanced x86_64 2:7.4.827-1.fc22 updates 1.1 M
vim-filesystem x86_64 2:7.4.827-1.fc22 updates 22 k
Résumé de la transaction
===============================================================================================================================================================================================================================================================================
Installation 29 Packages
Taille totale des téléchargements : 14 M
Taille d'installation : 45 M
Est-ce correct [o/N] : o
- 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']
Vous pouvez désormais lancer l'installation des XenTools. Pour ce faire, vous pouvez suivre l'article suivant: Installation_des_XenTools_sur_une_instance_CloudStack.
Attention ne rebootez pas votre machine après l'installation dex XenTools contrairement à ce qu'indique l'article.
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 les scripts sur notre mirroir a l'aide de la commande wget (modifiez fedora22 par centos7, debian8 ou ubuntu1404 dans l'url suivante) :
wget http://mirror02.ikoula.com/priv/citrix/scripts/systemd/fedora22/systemd/cloud-set-guest-hostname.service -P /lib/systemd/system/
wget http://mirror02.ikoula.com/priv/citrix/scripts/systemd/fedora22/systemd/cloud-set-guest-password.service -P /lib/systemd/system/
wget http://mirror02.ikoula.com/priv/citrix/scripts/systemd/fedora22/systemd/cloud-set-guest-sshkey.service -P /lib/systemd/system/
wget http://mirror02.ikoula.com/priv/citrix/scripts/systemd/fedora22/systemd/cloud-set-guest-userdata.service -P /lib/systemd/system/
wget http://mirror02.ikoula.com/priv/citrix/scripts/systemd/fedora22/init.d/cloud-set-guest-hostname -P /etc/init.d
wget http://mirror02.ikoula.com/priv/citrix/scripts/systemd/fedora22/init.d/cloud-set-guest-password -P /etc/init.d
wget http://mirror02.ikoula.com/priv/citrix/scripts/systemd/fedora22/init.d/cloud-set-guest-sshkey -P /etc/init.d
wget http://mirror02.ikoula.com/priv/citrix/scripts/systemd/fedora22/init.d/cloud-set-guest-userdata -P /etc/init.d
- 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 retire la ligne MACADDR du fichier /etc/sysconfig/network-scripts/ifcfg-eth0 (de même, à adapter selon votre distribution).
[root@fedora22 ~]# grep -v ^MACADDR ifcfg-eth0 > ifcfg-eth0.tmp && rm -f ifcfg-eth0 && mv ifcfg-eth0.tmp ifcfg-eth0
- 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" :
Cliquez sur le nom de votre volume ROOTDISK :
Cliquez sur le bouton "Créer un modèle" :
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) :
Une fois la création de votre modèle terminée :
On peut retrouver celui-ci dans "Modèles" :
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) :
Vous pouvez maintenant déployer des nouvelles instances avec votre modèle compatible cloud public (vous devrez sélectionner votre modèle dans l'onglet "Mes modèles" du wizard de déploiement d'instance) :
Cet article vous a semblé utile ?
Activer l'actualisation automatique des commentaires