(WORK IN PROGRESS...)
===== Tool per l'automatizzazione della procedura di creazione di immagini cloud Linux =====
* Alvise Dorigo (INFN Padova)
[[https://github.com/alvise72/cloud|create-cloud-image]]
Questo tool, scritto in perl, automatizza la procedura descritta [[http://wiki.infn.it/cn/ccr/cloud/preparazione_immagini_per_centos_6.4_e_sl6.4_con_cloud-init|qui]]. Permette la creazione di immagini Linux SL5.9/6.4 o CentOS5.9/6.4 resizables in maniera automatica stando su una piattaforma omologa (RH5/6, CentOS5/6, SL5/6, per via di ovvii problemi di non forward-compatibility del database RPM).
Tanto per farsi un'idea della personalizzazione permessa al momento si puo' guardare direttamente l'help:
[root@lxadorigo ~]# ./create-cloud-image
Usage: create-cloud-image [OPTIONS]
Options:
--fake-run Do not really execute the operations,
just print them
--help|-H Print this help and exit
--verbose|-v High verbosity and commands' output
--root-pwd|-P Set the root's password
--libdir|-L Set the directory where to put the artifacts
(Default: HOME/cloud-images)
--mount-point Set the temporary mountpoint for installation
(Default: /mnt/cloud-image-)
--mirror|-m Select a different mirror to download from
(See below for defaults)
--size|-s [G] Set the initial O.S. disk size
(Default: 2 GB)
--image-name|-n Set the name of the image file
(Default: OS's name)
--extra-packages|-e Specify a list of comma separated additional
rpm pkgs to install
--extra-pkikeys|-e Specify a list of comma separated additional
PKI (local or remote) GPG KEY files to install
--create-user|-u Create a new user ( format is:
[,[,[,]]])
--upload Upload into glance (root user must be
atuhenticated into keystone)
--filesystem|-f Format cloud image with a user specified
filesystem
--locale Set the image's locale. Format must be compliant
with the directories contained in
/usr/share/zoneinfo. Ex. "Europe/Rome",
"America/New_York" (Default: "Europe/Rome")
--install-ntp Install ntp package
--ntp-servers Define a list of comma separated NTP servers
to put into the ntp configuration file
(Default: european servers)
--overwrite If already present, forcely delete the directory
where to put the artifacts
--donotupdate Do not run 'yum update'
--donotcreate-ec2user Do not create ec2-user
Supported OS are: "CentOS5", "CentOS6", "SL6", "SL5" (both x86_64)
Default mirrors are:
CentOS: http://mirror3.mirror.garr.it/mirrors/CentOS
SL: http://ftp.scientificlinux.org/linux/scientific
Quindi e' possibile:
* scegliere un mirror da cui scaricare il software da installare
* scegliere la dimensione iniziale dell'immagine (poi ridimensionabile al boot della macchina virtuale mediante scelta del flavor opportuno dalla dashboard di openstack)
* impostare un eventuale utente non super-user; di default lo script crea ec2-user (operazione disattivabile con l'opzione "--donotcreate-ec2user") e cloud-init prevede l'inserimento della chiave pubblica del proprietario della VM nel file authorized_keys di ec2-user qualora ec2-user esista. Per ottenere questo comportamento con un altro utente sara' necessario modificare il cloud.cfg installato nell'immagine.
* installare eventuali pacchetti rpm addizionali (e.g. tools di sviluppo, pacchetti grid, etc.)
* installare eventuali chiavi GPG addizionali
* settare il timezone
* installare opzionalmente il repo di EPEL (con relativa chiave GPG)
* impostare i server NTP e relativo demone
* etc.
Ovviamente lo strumento e' ancora sotto sviluppo per l'aggiunta di funzinalita' o per la revisione di customizzazioni non necessarie per una corretta creazione di immagini cloud.
Per info: alvise dorigo pd infn it
Un ringraziamento a Marco Caberletti (@CNAF) per il supporto tecnico e il "trasferimento" di know-how.