Difference between revisions of "How create a compatible model Cloud Ikoula"
Line 1: | Line 1: | ||
+ | <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_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_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]] |
Revision as of 17:05, 7 October 2015
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
fr:Comment creer un modele compatible Cloud Ikoula
This article has been created by an automatic translation software. You can view the article source here.
The following procedure explains how to create a model compatible with Cloud Ikoula from an installation from scratch (from a iso ).
In our example, we will create a GNU image /Linux Fedora 22.
Log on to the interface Cloud Ikoula :
Click on "Models " in the left menu :
Select the view "ISO" :
Click on the button "Save ISO " :
Then fill in the fields :
1: Enter the name you want for your image
2: Enter a description for your image
3: Enter /Paste the HTTP u (non-http) full iso file
4: Select the Cloud Ikoula area for which your image will be available
5: Select this checkbox if you want an instance to be able to boot from your iso
6: Indicate the type of system your ISO, if your system and the version of it is in the list select the otherwise choose one type "Other xxx" the most suitable. In our case, Fedora 22 was not available in the list we have therefore selected "Other Linux (64-bit)".
7: Check this case if you want that your ISO can be downloaded once created
Once your ISO registered, wait until it is in status "Loan : Yes" :
Click on "Instances" in the left menu :
Click on the button "Add an instance " :
Select your instance deployment area :
Select ISO and click on "Follow"
Click on the tab "My ISOs" and select the iso you just create :
Select the offer for the calculation of your choice and then c "Follow"
Made slide the cursor to select the size of disk (GB ) that you want for your instance and therefore for your future model or enter the size (GB ) manually in the field and then confirm with the button "Entry " your keyboard to make the selected appears in the description at the top :
Click on "Follow"
Continue the classic stages of deploying an instance (Affinity, nawork, instance name ) clicking on "Follow" at each time to validate and then click "Start VM "
Once your instance has been deployed, click the name of the (from the Instances me) :
Click on the button "See the consol" (Note that you see your ISO image attached to your instance into the details of this ) :
A new pop-up browser window will open (If this is not the case check that you not block it the pop up for the Cloud Ikoula interface ). This window is actually a web GUI console type VNC /KVM (écran/clavier/souris) your instance which will allow you to install the system on the disk of your instance :
Continue with the installation of your system with the partitioning and configuration you want (install the SSH package if prompted ), note, however, that the keyboard is not of type QWERTY (attention therefore to the definition of passwo).
At the end of the installation when it is asked to you click on restart, stop your instance to detach ISO
Once your instance is stopped, click the name of your instance and then the button "Detach the ISO image" :
Once the iso detached from your instance, you can again start it to start on the system that you just installed on the disk (ROOTDISK) of the latter.
Click on the button "See the consol" to see your booted system :
Connect with SSH to your instance (You must have create a firewall rule and redirection of port if your instance is in zone /network advance or an inbound rule of security group if it is in zone basic and does not have rules iptables on your instance system ) to complete the configuration of the system to make it compatible with Cloud Ikoula.
With regard to a virtual context, we relied on a partitioning with LVM (root and swap logical volumes ) in order to easily resize our partitions in case of resizing or adding a virtual disk :
[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
Update the system if necessary (to adapt to your package manager ) :
[root@Fedora22x64 ~]# dnf upgrade
Please install the minimum packages which can be used to execute commands in settings "UserDat" during a deployment for instance w your templat : Vim, rsync, curl, wget, cloud-init, puppet, facte :
[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
- Add the line "datasource_list: ['CloudStack']" at the beginning of the configuratio /etc/cloud/cloud.cfg (If you have installed cloud-init as shown above ) :
[root@fedora22 ~]# head -n1 /etc/cloud/cloud.cfg
datasource_list: ['CloudStack']
Retrieve archive containing the tools on our mirror Xen :
[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]
Unpack it in the current directory (requires unzip to be installed ) :
[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 ~]#
Run the installation of the 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.
Restart your instance as this prompted :
[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 ]
You can delete the installation files :
[root@Fedora22x64 ~]# rm -rf linux65*
[root@Fedora22x64 ~]#
We add the following lines in /etc/sysctl.conf (It disables API 6 and applied some optimizations ):
#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
Then we execute the command "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
It modifies the SELinux policy to pass it from "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
If your system has rules of origin firewall, please stoppper and disable it, in our case example :
[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.
It verifies that it has more rules of responsible :
[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
We now install the Cloud guests scripts on which are based the functionality of change of password, hostname, userdata's SSH keys :
- First, retrieve the archive containing the scripts on our mirror (Edit fedora 22 by centos7, debian8 or ubunt1404 in the following u) :
[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]
- Extract the conten :
[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
- Move the files .service in /lib/systemd/system/ :
[root@Fedora22x64 ~]# mv cloud-set-guest-*.service /lib/systemd/system/
[root@Fedora22x64 ~]#
- Move the other files in /etc/init.d/
[root@Fedora22x64 ~]# rm -f cloud-set-guest-scripts.tar.gz
[root@Fedora22x64 ~]# mv cloud-set-guest-* /etc/init.d/
[root@Fedora22x64 ~]#
- It enables our service units :
[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
- We purge the DHCP leases file (path and name of file to suit the need ) :
[root@fedora22 ~]# > /var/lib/dhclient/dhclient.leases
- On purge master logs files and command history :
[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
- It created the model of our quit instance :
On the Cloud Ikoula interface, go in "Instances" then click on the name of your instance
Click on "See Volumes" :
Click on the name of your volume ROOTDISK :
Click on the button "Create a templat" :
Give the name and the description that you want to your model, choose the same type of bone than that of your instance, check "Password enabled " et "dynamic resizing " (If you have respectively set up the cloud-set-guest-password script and installed the xentools ) :
Once finished creating your template :
You can find it in "Models " :
The name of your template and click the tab "Area" to verify that its status is ready (Loan : Yes) :
You can now deploy new instances with your compatible model Cloud Ikoula (you will need to select your model in the tab "My template" the instance deployment wizard) :
Enable comment auto-refresher