User Tools

Site Tools


cn:ccr:cloud:toolpercreazioneimmaginecloud

(WORK IN PROGRESS…)

Tool per l'automatizzazione della procedura di creazione di immagini cloud Linux

  • Alvise Dorigo (INFN Padova)

create-cloud-image

Questo tool, scritto in perl, automatizza la procedura descritta 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] <OS>
 
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 <root_password>   Set the root's password
 
--libdir|-L <libdir>            Set the directory where to put the artifacts
                                (Default: HOME/cloud-images)
 
--mount-point <mountpoint>      Set the temporary mountpoint for installation
                                (Default: /mnt/cloud-image-<OS>)
 
--mirror|-m <mirror>            Select a different mirror to download from
                                (See below for defaults)
 
--size|-s <disksize>[G]         Set the initial O.S. disk size
                                (Default: 2 GB)
 
--image-name|-n <IMAGE_NAME>    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 <USERINFO>     Create a new user (<USERINFO> format is:
                                <username>[,<pwd>[,<shell>[,<pub_key>]]])
 
--upload <LABEL_NAME>           Upload into glance (root user must be
                                atuhenticated into keystone)
 
--filesystem|-f <FS_NAME>       Format cloud image with a user specified
                                filesystem
 
--locale <REGION/CITY>          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 <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 <DOT> dorigo <AT> pd <DOT> infn <DOT> it

Un ringraziamento a Marco Caberletti (@CNAF) per il supporto tecnico e il "trasferimento" di know-how.

cn/ccr/cloud/toolpercreazioneimmaginecloud.txt · Last modified: 2013/10/22 10:07 by dorigoa@infn.it

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki