sfrontori pillole-cobbler
Post on 20-Aug-2015
335 Views
Preview:
TRANSCRIPT
Cobbler: Quando Linux installa Linuxe ti fa le scarpe!
Stefano FrontoriAssociazione di Promozione Sociale LOLUG – Gruppo Utenti Linux Lodistefano.frontori@lolug.org
PILLOle: CobblerStefano Frontori 2
Spesso accade che...
devo (re)installare il sistema operativo:
● Che noia, ma quanto ci mette?
● non trovo più il CD... (e se il lettore non cè?)
● mi sono sbagliato, lo devo reinstallare?
● ma come lo avevo configurato?
PILLOle: CobblerStefano Frontori 3
Cobbler
● Ufficialmente: “Installation e update server for Linux”
● Un server linux che ci permette di avere un ambiente di installazione centralizzato, modulare e flessibile.
● basato su pochi e semplici oggetti,● distro, profili, sistemi, immagini e repository.
● Gestisce macchine fisiche e virtuali
PILLOle: CobblerStefano Frontori 4
Installazione & config
[root@ariel ~]# yum -y install cobbler koan tftp-server dhcp httpd bind
[root@ariel ~]# cobbler check ....
[root@ariel ~]# vim /etc/cobbler/settings
[root@ariel ~]# service cobblerd restart
PILLOle: CobblerStefano Frontori 5
Una semplice procedura
[root@ariel ~]# cobbler listdisto Fedora-10-i386 profile Fedora-10-i386 profile rescue-Fedora-10-i386
[root@ariel ~]# cobbler import --mirror=/media/cdrom/ --name=Fedora-10-i386
PILLOle: CobblerStefano Frontori 6
Le Distribuzioni
● Kernel = software avente il compito di fornire ai processi in esecuzione sull'elaboratore un accesso sicuro e controllato all'hardware.
● Initrd = "initial ramdisk", ed è un piccolo filesystem montato in memoria da Linux nella fase iniziale della procedura di boot
cobbler distro add --name=string --kernel=path --initrd=path
PILLOle: CobblerStefano Frontori 7
Object tree
Distro
Profili
Sistemi
kernel
initrd
kickstart
interfacce
Repo
Immagini
ProfiliProfilikickstart
Data mirror
Binary
PILLOle: CobblerStefano Frontori 8
Aggiungere un profilo
● Ogni profilo è caratterizzato da un file di kickstart
● Ad ogni distro possono essere associati uno o più profili
[root@ariel ~]# cobbler profile add --name=myWebServer-Fedora-10 --distro=Fedora10-i386--kickstart=/path/my-WebServer-kickstart.ks
PILLOle: CobblerStefano Frontori 9
I profili● Sono l'associazione tra una distribuzione e un
file di kickstart
● Un profilo specializza la configurazione di una tipologia di macchine● web server, mail, ftp, desktop...
cobbler profile add --name=string --distro=string [--kickstart=path]
PILLOle: CobblerStefano Frontori 10
I file di kickstart#platform=x86, AMD64, or Intel EM64T# System authorization informationauth --useshadow --enablemd5# System bootloader configurationbootloader --location=mbr# Partition clearing informationclearpart --all --initlabel# Use text mode installtext# Firewall configurationfirewall --disabled# Run the Setup Agent on first bootfirstboot --disable# System keyboardkeyboard it# System languagelang en_US# Use network installationurl --url=$tree# If any cobbler repo definitions were referenced in the kickstart $yum_repo_stanza# Network information$SNIPPET('network_config')# Reboot after installationreboot
PILLOle: CobblerStefano Frontori 11
Object tree
Distro
Profili
Sistemi
kernel
initrd
kickstart
interfacce
Repo
Immagini
ProfiliProfilikickstart
Data mirror
Binary
PILLOle: CobblerStefano Frontori 12
Aggiungere un sistema
● Da un profilo possiamo creare un sistema semplicemente associandogli un interfaccia di rete.● un pezzo di hardware indentificaco da un mac
address
[root@ariel ~]# cobbler system add --name=myDesktop --profile=myDesktop-Fedora-10--interface=eth0 --ip=192.168.0.50 --mac=AA:BB:CC:DD:EE:A1
PILLOle: CobblerStefano Frontori 13
I sistemi
● Cobbler gestisce le interfacce attraverso gli snippets● pre_install_network_config● post_install_network_config
contenuti nel file di kickstart associato al
sistema
cobbler system add --name=string --profile=string [--mac=macaddress]
PILLOle: CobblerStefano Frontori 14
Snippets● Gli snippets rendono dinamico (!) un file di
kickstart
%pre$kickstart_start$SNIPPET('pre_install_network_config')
%packages$SNIPPET('func_install_if_enabled')
%post# Start yum configuration $yum_config_stanza# End yum configuration$SNIPPET('post_install_kernel_options')$SNIPPET('post_install_network_config')$SNIPPET('func_register_if_enabled')$SNIPPET('download_config_files')# Enable post-install boot notification$SNIPPET('post_anamon')# Start final steps$kickstart_done
PILLOle: CobblerStefano Frontori 15
Object tree
Distro
Profili
Sistemi
kernel
initrd
kickstart
interfacce
Repo
Immagini
ProfiliProfilikickstart
Data mirror
Binary
PILLOle: CobblerStefano Frontori 16
Repository e Immagini
[root@ariel ~]# cobbler repo add--mirror=http://mirrors.kernel.org/fedora-10/--name=Fedora10-i386-updates
[root@ariel ~]# cobbler image add --name=Fedora-10-LIVE --file=/path/Fedora-10-LIVE.iso --image-type=iso
PILLOle: CobblerStefano Frontori 17
Provisioning
Abbiamo aggiunto tutto quello che ci serve, ora come lo installiamo?
● Cobbler supporta l'installazione via rete tramite PXE (preboot execution enviroment)
● anche la gestione di servizi dhcp e di bind
[root@ariel ~]# vim /etc/cobbler/dhcp.template[root@ariel ~]# service dhcpd start[root@ariel ~]# service xinetd start
PILLOle: CobblerStefano Frontori 18
Provisioning● Ogni volta che si aggiunge o crea un
elemento è necessario riavviare tutti i servizi utilizzati
● È anche possibile fare provisionig alla vecchia maniera, a mano ;-)
[root@ariel ~]# cobbler sync
[root@ariel ~]# cobbler buildiso
PILLOle: CobblerStefano Frontori 19
VirtualizzareE se avessi la necessità di macchine virtuali?
● Koan (kickstart over a network) gestisce il processo di installazione su di una macchina
● virtuale (Xen, Kvm/Qemu, VmWare)● dove non è possibile utilizzare PXE● per reinstallare un sistema già esistente
[root@ariel ~]# koan --server=myCobblerServer --replace-self --system=myVirtual-WebServer
PILLOle: CobblerStefano Frontori 21
Api & Xmlrpc● Cobbler mette a disposiozione delle comode
api per accedere alle funzionalità del server
#!/usr/bin/env python
from cobbler import api as cobbler_apicobbler_api = cobbler_api.BootAPI()
import xmlrpclib
my_uri = "http://192.168.0.1/cobbler_api_rw" remote = xmlrpclib.Server(my_uri)# now add a profile pro_id = remote.new_profile(token) remote.modify_profile(pro_id, 'name', profilename, token) remote.modify_profile(pro_id, 'distro', distroname, token) remote.modify_profile(pro_id, 'kickstart', kslink, token)
status = remote.save_profile(pro_id,token)
PILLOle: CobblerStefano Frontori 22
Useful Command● È possibile importare in cobbler anche sistemi
non unix-like
● È anche possibile fare il provisioning di distribuzioni Live!
[root@ariel ~]# koan --server=myCobblerServer --virt --virt-name=Fedora-9-LIVECD -C --image=Fedora-9-LiveCD
[root@ariel ~]# cobbler image add --name=WindowsXP --filename=WindowsXP.iso
PILLOle: CobblerStefano Frontori 24
Riferimenti
● Main Site:https://fedorahosted.org/cobbler/
● User Documentation● https://fedorahosted.org/cobbler/wiki/UserDocs
● Developer Documentation● https://fedorahosted.org/cobbler/wiki/DeveloperDocs
top related