« Installation/Cobbler » : différence entre les versions

De TartareFR
Aller à la navigation Aller à la recherche
 
(44 versions intermédiaires par le même utilisateur non affichées)
Ligne 1 : Ligne 1 :
= Introduction =
== Introduction ==
Ce document décrit le déroulement de l'installation de l'outil Cobbler. Cobbler est un serveur d'installation qui permet d'installer facilement et automatiquement des systèmes d'exploitations, virtualisés ou non via PXE. Nous allons détailler dans cette notice son installation, sa configuration et son utilisation.


= Installation =
Cobbler<ref>[http://www.cobblerd.org/manuals/2.6.0/ Documentation officielle]</ref> est un serveur d'installation qui permet d'installer facilement et automatiquement des systèmes d'exploitations, virtualisés ou non via PXE.
La première chose à faire est de configurer le serveur DHCP car dans notre cas le serveur Cobbler n'est pas la même machine que le serveur DHCP. On doit donc déclarer la classe PXE pour le serveur Cobbler sur le serveur DHCP:


Fichier <path>/etc/dhcp/dhcpd.conf</path>
Sur CentOS 7, les principales différences par rapport à une installation sur CentOS 6 sont:
host cobbler
* Pas de paquet <package>debmirror</package> officiellement disponible
{
* Disparition du daemon rsync
option host-name "cobbler";
* Remplacement des commandes <app>iptables</app> par <app>firewalld</app>
ddns-hostname "cobbler";
[[Fichier:Cobbler-inrteraction.png|Interactions de Cobbler avec son environnement]]
hardware ethernet 00:0C:29:78:28:47;
fixed-address 192.168.0.98;
allow booting;
allow bootp;
class "PXE" {
match if substring(option vendor-class-identifier, 0, 9) = "PXEClient";
next-server 192.168.0.98;
filename "pxelinux.0";
}
}


On redémarre le service DHCP
== Installation ==
/etc/init.d/dhcpd restart


Ensuite une simple commande yum va permettre d'installer le service cobbler sur le serveur:
=== Modification du service DHCP ===
yum install PyYAML cobbler cobbler-web
L'installation est maintenant terminée.


= Configuration =
Si le serveur DHCPd n'est pas la même machine que le serveur cobbler, il faut déclarer le serveur Cobbler sur le serveur DHCPd:
Au niveau configuration, on va dans un premier temps ajuster les paramètres de cobbler, il faut définir un mot de passe crypté qui sera le mot de passe root pour les machines installées en PXE et l'adresse IP du serveur cobbler.


On commence donc par créer le mot de passe crypté à l'aide de htpasswd. L'option '''-n''' pour afficher le résultat sur la sortie standard et '''-d''' pour forcer l’algorithme de cryptage à CRYPT.
Fichier <path>/etc/dhcp/dhcpd.conf</path>
  /usr/bin/htpasswd -nd root
<pre>
  New password: [cobbler]
...
  Re-type new password: [cobbler]
  allow booting;
  root:xH.KydRoK8CyQ
allow bootp;
  filename "pxelinux.0";
  next-server 192.168.0.205;
...
</pre>
On redémarre le service DHCPd
  service dhcpd restart


On peut donc maintenant éditer le fichier de configuration du serveur cobbler:
=== Installation de cobbler ===
Fichier <path>/etc/cobbler/settings</path>
default_password_crypted: xH.KydRoK8CyQ
next_server: 192.168.0.98
server: 192.168.0.98


Ensuite on va installer les services nécessaires au fonctionnement de cobbler:
Sur un serveur fraichement installé en CentOS 7:
yum install tftp tftp-server xinetd
* Mise en place du nom d'hôte<pre>hostnamectl set-hostname cobbler.home.net</pre>
* Redémarrage du serveur
* Installation du dépôt EPEL<pre>rpm -Uvh http://mirror.ibcp.fr/pub/epel/7/x86_64/e/epel-release-7-2.noarch.rpm</pre>
* Installation des paquets<pre>yum -y install cobbler pykickstart tftp</pre>
* Activation du service tftpd (xinetd)<pre>sed -i -e '/disable/ s/yes/no/' /etc/xinetd.d/tftp</pre>
* Démarrage et activation des services concernés: '''httpd''', '''xinetd''' et '''cobblerd'''<pre>for service in xinetd httpd cobblerd ; do systemctl start $service ; systemctl enable $service ; done</pre>


/etc/init.d/xinetd start
=== Installation de debmirror ===
/etc/init.d/cobblerd start
chkconfig xinetd on
chkconfig cobblerd on


Maintenant on va contrôler la bonne configuration de cobbler et ajuster les paramètres comme cela sera indiqué:
* Téléchargement du [http://mirrors.karan.org/epel7/Packages/debmirror/20131231023255/2.14-2.el6.x86_64/debmirror-2.14-2.el7.noarch.rpm RPM noarch debmirror]
cobbler check
* Installation<pre>yum localinstall debmirror-2.14-2.el7.noarch.rpm</pre>
* Mise en commentaire des lignes suivantes dans le fichier <path>/etc/debmirror.conf</path><pre>#@dists="sid";</pre><pre>#@arches="i386";</pre>


== Configuration ==


/etc/init.d/httpd start
=== Firewall ===


* Open for HTTP<pre>firewall-cmd --permanent --add-service=http</pre>
* Open for HTTPS<pre>firewall-cmd --permanent --add-service=https</pre>
* Open for TFTP<pre>firewall-cmd --permanent --add-service=tftp</pre>
* Open for Cobbler<pre>firewall-cmd --permanent --add-port=25151/tcp</pre>
* Open for TFTP<pre>firewall-cmd --permanent --add-port=69/tcp</pre>
* Reload firewall<pre>firewall-cmd --reload</pre>


vi /etc/xinetd.d/rsync
=== SELinux ===
   
Au niveau configuration, on va dans un premier temps s'occuper de SELinux<ref>https://github.com/cobbler/cobbler/wiki/Selinux</ref>.
  disable = no
  setsebool -P httpd_can_network_connect true
   
  setsebool -P cobbler_can_network_connect true
  :wq
  semanage fcontext -a -t public_content_t "/var/lib/tftpboot/.*"
  restorecon -Rv /var/lib/tftpboot


=== Cobbler ===


yum install cman
Puis dans le fichier de configuration <path>/etc/cobbler/settings</path>, on va:
* Définir un mot de passe crypté qui sera le mot de passe root pour les machines installées en PXE
* Modifier l'adresse IP du serveur cobbler.


On commence donc par créer le mot de passe crypté à l'aide d'openssl.
openssl passwd -1


On peut donc maintenant éditer le fichier de configuration du serveur cobbler:
Fichier <path>/etc/cobbler/settings</path>
default_password_crypted: <mot-de-passe-crypté>
next_server: 192.168.0.205
server: 192.168.0.205
On va maintenant télécharger les ''boot-loaders''
  cobbler get-loaders
  cobbler get-loaders


Redémarrage du cobbler
systemctl restart cobblerd


yum install debmirror
Synchronisation
 
vi /etc/debmirror.conf
<nowiki># @dists="sid";</nowiki>
<nowiki># @arches="i386";</nowiki>
 
/etc/init.d/cobblerd restart
 
 
  cobbler sync
  cobbler sync


Et vérification
  cobbler check
  cobbler check
No configuration problems found.  All systems go.


Cobbler est maintenant correctement configuré. L'étape suivante consiste à importer l'ISO de la distribution que l'on voudra rendre accessible via PXE. Dans notre cas nous allons utiliser CentOS et l'import ne peut pas se faire avec l'ISO de netinstall et l'ISO DVD comprend beaucoup trop de packages qui ne nous serviront pas.
Cobbler est maintenant correctement configuré.


Nous avons donc [[Distribution/Centos/Customize|customisé un CentOS à l'aide du CD1 de CentOS]]. C'est donc cet ISO custom que l'on va utiliser pour l'import.
== Ajout de distributions ==


Il faut d'abord récupérer l'ISO de la CentOS customisé en local sur le serveur cobbler (par exemple dans le répertoire /downloads) puis:
* On monte l'image ISO du DVD<pre>mount -t iso9660 -o loop,ro /downloads/CentOS-5.5-x86_64-core.iso /mnt/</pre>
* On l'importe dans cobbler<pre>cobbler import --path=/mnt --name=CentOS-5-x86_64</pre>Et pour Ubuntu<pre>cobbler import --name=Ubuntu-14.04-trusty-x86_64 --breed=ubuntu --os-version=trusty --arch=x86_64 --path=/mnt/ubuntu/14.04/</pre>
{{Admon/important|Validation des modifications|On applique les changements en relançant le daemon et en lançant la synchronisation
<pre>systemctl restart cobblerd && cobbler sync</pre>}}


# mount -t auto -o loop /downloads/CentOS-5.5-x86_64-core.iso /mnt/
== Suppression de distributions ==
# cobbler import --path=/mnt --name=Centos5 –arch=x86_64


# cobbler sync
Pour supprimer une distribution:
* On supprime le(s) profile(s) qui nécessite la distribution<pre>cobbler profile remove --name=CentOS-6-x86_64</pre>
* On supprime la distribution<pre>cobbler distro remove --name=CentOS-6-x86_64</pre>
{{Admon/important|Validation des modifications|On applique les changements en relançant le daemon et en lançant la synchronisation
<pre>systemctl restart cobblerd && cobbler sync</pre>}}


# cobbler list
== Francisation ==
distros:
Centos5-x86_64
Centos5-xen-x86_64
profiles:
Centos5-x86_64
Centos5-xen-x86_64
systems:
repos:
images:


On constate donc dans la liste des distros et des profiles que l'ISO CentOS a bien été ajouté au serveur cobbler.
Modification des fichiers kickstart par défaut.


Maintenant on va créer le repo local. On pourrait utiliser le repo officiel de CentOS mais il faut savoir que le cobbler va récupérer localement tous les paquets depuis le repo. Cette opération demande beaucoup de temps et surtout beaucoup d'espace disque. Sachant que nous avons pas besoin de tous les paquets disponibles sur le repo officiel de CentOS nous allons créer un repo local avec très peu de paquets ce qui permettra d'occuper peu d'espace disque mais aussi et surtout de rendre l'installation via PXE encore plus rapide.  
=== Pour toutes les distributions (boot PXE rescue) ===
Modification du fichier <path>/var/lib/cobbler/kickstarts/pxerescue.ks</path>
<pre>
lang fr_FR
keyboard "fr-latin9"
</pre>


On procède ainsi:
=== Spécifiquement pour les distribution Debian/Ubuntu ===


* installer une CentOS de façon traditionnelle avec le minimun de paquets installés (éditeur vim)
Modification du fichier <path>/var/lib/cobbler/kickstarts/sample.seed</path>
* une fois installé on ne fais de mis à jour avec yum update mais on installe les paquets suivants (avec yum install): wget rsync slocate autoconf automake make imake m4 man
<pre>
* on peut maintenant mettre à jour les paquets puis les récupérer avec yumdownloader:
d-i debian-installer/locale string fr_FR
d-i keyboard-configuration/layoutcode string fr-latin9
d-i time/zone string Europe/Paris
</pre>
Modification du fichier <path>/var/lib/cobbler/kickstarts/sample_old.seed</path>
<pre>
d-i    console-keymaps-at/keymap      select  fr-latin9
tzsetup-udeb    time/zone      select  Europe/Paris
</pre>


mkdir /tmp/rpm
=== Spécifiquement pour les distribution Redhat/Centos/Fedora ===
yum update -y
yum install yum-utils -y
rm -rf /root/rpm.log && rpm -qa > rpm.log
for i in $(cat /root/rpm.log) ; do yumdownloader $i --destdir=/tmp/rpm ; done


On peut maintenant créer le repo avec:
Modification du fichier <path>/var/lib/cobbler/kickstarts/sample.ks</path>, du fichier <path>/var/lib/cobbler/kickstarts/sample_end.ks</path> et du fichier <path>/var/lib/cobbler/kickstarts/legacy.ks</path>
<pre>
keyboard fr-latin9
lang fr_FR
timezone --utc Europe/Paris
</pre>


{| style="border-spacing:0;"
{{Admon/important|Validation des modifications|On applique les changements en relançant le daemon et en lançant la synchronisation
| style="border:0.05pt solid #000000;padding:0.097cm;"| yum install createrepo
<pre>systemctl restart cobblerd && cobbler sync</pre>}}


createrepo /tmp/rpm/
== Kickstart et Snippets ==
Les snippets (ou extraits) de kickstart sont un moyen de réutiliser les blocs de code commun entre les fichiers kickstart.
{{Admon/warning|Utilisation des snippets avec debian/ubuntu|Les snippets ne peuvent pas être directement inclus dans le fichier sample.seed.


|}
Ils doivent être exécuter par un script. Le plus simple est d'inclure le snippet dans un script existant et exécuté par sample.seed (ex: <path>/var/lib/cobbler/scripts/preseed_late_default</path>)}}
Puis on déclare le repo dans cobbler:


=== Editer la taille des partitions avec les snippets ===
Par défaut, cobbler utilise tout l'espace du disque dur qu'il assigne à la partition /, on peut vouloir définir les partitions en fonction de la taille du disque. Pour cela, nous allons utiliser les snippets kickstart de cobbler.


{| style="border-spacing:0;"
Donc pour pouvoir définir la taille d'une ou plusieurs partitions
| style="border:0.05pt solid #000000;padding:0.097cm;"| cobbler repo add --mirror=/tmp/rpm/ --name=centos5-local


cobbler reposync
On créé un snippet: fichier <path>/var/lib/cobbler/snippets/partition_config</path>
<syntaxhighlight lang="python">
part /boot --size=200 --recommended --asprimary
part pv.01 --size=1024 --grow
volgroup vg0 pv.01
logvol /    --vgname=vg0 --name=lv0 --size=1024 --maxsize=3072 --grow
logvol /var --vgname=vg0 --name=lv1 --size=512  --maxsize=1024 --grow
logvol swap --vgname=vg0 --name=lv2 --size=1024 --maxsize=2048
</syntaxhighlight>


|}
Dans tous les fichiers kickstart (sample*.ks), on remplace la  ligne
On peut maintenant voir le repo avec:
autopart
par
$SNIPPET('partition_config')


=== Mise à jour de la distribution ===


{| style="border-spacing:0;"
On créé un snippet: fichier <path>/var/lib/cobbler/snippets/yum_update</path>
| style="border:0.05pt solid #000000;padding:0.097cm;"| cobbler list
<syntaxhighlight lang="python">
# Update package
yum update -y
</syntaxhighlight>


Dans tous les fichiers kickstart (sample*.ks), on insert la ligne suivante à la fin du fichier
$SNIPPET('yum_update')


repos:
=== Autorisation des connexions ssh par clés publiques ===


centos5-local
On créé un snippet: fichier <path>/var/lib/cobbler/snippets/ssh_public_keys</path>
<syntaxhighlight lang="python">
# Public key to import
mkdir /root/.ssh
chmod 700 /root/.ssh
touch /root/.ssh/authorized_keys
chmod 600 /root/.ssh/authorized_keys


|}
# Didier
On va ensuite modifier le fichier kickstart par défaut qui est le fichier permettant l'automatisation de l'installation de CentOS:
echo 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCgXXO+1osvzeWottxs1HGLtycjR0Y/CnBH4Q0vvz0QTifw6d2Dkwmt7WhPU3kAeauGMJr295lfjCsIW57y
qhp7jFG64AHMD8bdBlLcxZiHffA0tDUXPobESfCqoymimr32ubE7HgoyKaw4TScL6DRbny+d6B+5mSFHCu/vJcJYOfoobdr5drWscvh0c7t3POxFT/MRS4rI17hbAQ
0QdF81jtKst9+kUD9bB0cJFPZ4GuVHD6re8vVWxm86IQ+1/kpIzXKWtFld3o7jKD21c3wDxu7o5eD2wf7eY+3hLHmYYX4lhwqnT1rKfyxmDLH38J8qzjuCiEVsD143
B1hwQiwJ didier@didier.b2pweb.com' >> /root/.ssh/authorized_keys
</syntaxhighlight>


Dans tous les fichiers kickstart (sample*.ks), on insert la ligne suivante à la fin du fichier, ainsi que dans le fichier <path>/var/lib/cobbler/scripts/preseed_late_default</path> (debian)
$SNIPPET('ssh_public_keys')


cd /var/lib/cobbler/kickstarts/
=== Exécution conditionnelle dans le kickstart ===
mv sample.ks sample.ks_bak
vi sample.ks


<syntaxhighlight lang="kixtart">
On va se servir de variables dans le fichier kickstart. Pour cela on va affecter deux variables à certains profils:
auth --useshadow --enablemd5
* '''el''': pour indiquer la version majeure de notre CentOS
bootloader --location=mbr
* '''type''': pour préciser le type: minimal, desktop, etc...
clearpart --all --initlabel
cobbler profile edit --name Centos-6-x86_64-Desktop --ksmeta="el=6 type=desktop"
text
cobbler profile edit --name Centos-7-x86_64-Desktop --ksmeta="el=7 type=desktop"
firewall --disabled
firstboot --disable
keyboard fr-pc
lang fr_FR.UTF-8
url --url=$tree
$yum_repo_stanza
$SNIPPET('network_config')
reboot


rootpw --iscrypted $default_password_crypted
Ex: On veut pouvoir spécifier des paquets différent à installer en fonction de la version et du type d'installation
selinux --disabled
<syntaxhighlight lang="python">
skipx
#set $el_type = $getVar('type', 'minimal')
timezone --utc Europe/Paris
#set $el_version = $getVar('el', '5')
install
#if $el_type == "desktop"
zerombr
@base
autopart
@network-tools
 
@x11
%pre
@graphical-admin-tools
$SNIPPET('log_ks_pre')
#if $el_version == "6"
$kickstart_start
@desktop-platform
$SNIPPET('pre_install_network_config')
@basic-desktop
# Enable installation monitoring
#else if $el_version == "7"
$SNIPPET('pre_anamon')
@gnome-desktop
 
#end if
%packages
#end if
$SNIPPET('func_install_if_enabled')
 
%post
$SNIPPET('log_ks_post')
$yum_config_stanza
$SNIPPET('post_install_kernel_options')
$SNIPPET('post_install_network_config')
$SNIPPET('func_register_if_enabled')
$SNIPPET('download_config_files')
$SNIPPET('koan_environment')
$SNIPPET('redhat_register')
$SNIPPET('cobbler_register')
$SNIPPET('post_anamon')
 
$kickstart_done
</syntaxhighlight>
</syntaxhighlight>


La configuration de notre cobbler est désormais correctement configuré et on peut effectuer un test d'installation d'une machine virtuelle. On crée une nouvelle machine virtuelle sans lui fournir de media sur lequel booter, on démarre la VM puis on précise que l'on veut booter via PXE, on verra ensuite une interface ou l'on précisera sur quel image on veut booter.
== Interface Web ==
 
= Interface Web =
On va maintenant installer l'interface web permettant l'administration de cobbler puis la configurer:
On va maintenant installer l'interface web permettant l'administration de cobbler puis la configurer:
  yum install cobbler-web
  yum install cobbler-web


Fichier <path>/etc/cobbler/modules.conf</path>
Il faut s'assurer que le fichier <path>/etc/cobbler/modules.conf</path> contienne bien les lignes suivantes:
[authentication]
<pre>
module = authn_configfile
[authentication]
module = authn_configfile
[authorization]
 
module = authz_allowall
[authorization]
module = authz_allowall
</pre>


On créer le fichier de mot de passe <path>/etc/cobbler/users.digest</path> en mettant le login à '''cobbler''' et le mot de passe à '''cobbler'''
On créer le fichier de mot de passe <path>/etc/cobbler/users.digest</path> en mettant le login à '''cobbler''' et le mot de passe à '''cobbler'''
Ligne 228 : Ligne 243 :


On redémarre les services cobbler et apache
On redémarre les services cobbler et apache
  /etc/init.d/cobblerd restart
  systemctl restart cobblerd
  /etc/init.d/httpd restart
  systemctl restart httpd
 
On peut maintenant se rendre sur l'interface avec un navigateur et avec l'URL: http://192.168.0.98/cobbler_web
 
Login / Mot de passe: cobbler / cobbler
 
= KOAN =
Koan est un petit programme qui s'ajoute à cobbler et interagit avec celui-ci pour la reinstallation et pour la gestion de la virtualisation. Koan signifie: kickstart over a network, on l'utilise donc sur un client pour utiliser cobbler. Dans notre cas, on va principalement l'utiliser pour le déploiement de machines virtuelles. On peut l'installer via yum mais une version plus à jour est disponible sur le repo epel.
 
Il est important de savoir, avant de commencer à utiliser cet outil, que l'image de CentOS que nous utilisons pour cobbler ne fonctionne pas lorsqu'on on installe une VM avec koan, en effet le kernel de la CentOS customisé est le 2.6.18-194.32.1.el5 et après de longues recherches on a pu constater que cette version de kernel posait problème, il faut donc recrée un ISO de CentOS customisé avec le kernel installé par défaut sur une fresh install (2.6.18-194.el5), donc lors du yum update il faut exclure la mise à jour du kernel (se référer ici encore à la notice qui indique comment customiser l'ISO de CentOS).
 
Une fois que le nouvel ISO est crée, on l'importe dans cobbler (de la même façon que ci-dessus) en prenant garde de le nommer avec une indication particulière qui permettra de ne pas confondre les 2 images (ici nous l'avons nommé: centxenvm-x86_64). On peut ensuite commencer à utiliser koan.
 
Donc les manipulations suivantes sont à effectuer sur le serveur Xen:
 
 
{| style="border-spacing:0;"
| style="border:0.05pt solid #000000;padding:0.097cm;"| cd /downloads
 
wget http://download.fedora.redhat.com/pub/epel/5/x86_64/koan-2.0.9-1.el5.noarch.rpm
 
rpm -i koan-2.0.9-1.el5.noarch.rpm
 
 
koan --virt --profile=centxenvm-xen-x86_64 --server=192.168.0.98 --virt-type=auto --nogfx --virt-name=centos –virt-path=/home/xen/centos/
 
 
xm create centos
 
Error: (2, 'Invalid kernel', 'xc_dom_parse_elf_kernel: ELF image has no shstrtab\n')
 
 
vi /etc/xen/centos
 
 
<nowiki>## modifier:</nowiki>
 
bootloader = "/usr/bin/pygrub"
 
<nowiki>## par</nowiki>
 
<nowiki>#bootloader = "/usr/bin/pygrub"</nowiki>
 
kernel = "/boot/vmlinuz-2.6.18-194.el5xen"
 
ramdisk = "/boot/initrd-2.6.18-194.el5xen.img"
 
 
:wq
 
 
xm create centos
 
 
Mounting root filesystem.
 
mount: could not find filesystem '/dev/root'
 
Setting up other filesystems.
 
Setting up new root fs
 
setuproot: moving /dev failed: No such file or directory
 
no fstab.sys, mounting internal defaults
 
setuproot: error mounting /proc: No such file or directory
 
setuproot: error mounting /sys: No such file or directory
 
Switching to new root and running init.
 
unmounting old /dev
 
unmounting old /proc
 
unmounting old /sys
 
switchroot: mount failed: No such file or directory
 
Booting has failed.
 
 
xm destroy centos
 
 
xm console vm01 # VM installée depuis miroir centos donc kernel 2.6.18-194.el5
 
 
mkinitrd --omit-scsi-modules --with=xennet --with=xenblk --preload=xenblk initrd-$(uname -r)-no-scsi.img $(uname -r)
 
scp initrd-2.6.18-194.el5xen-no-scsi.img root@192.168.0.21:/home/xen/ # recuperation de l'image ramdisk depuis la vm qui fonctionne vers le serveur xen
 
ctrl + 5
 
 
vi /etc/xen/centos
 
 
<nowiki>#bootloader = "/usr/bin/pygrub"</nowiki>
 
kernel = "/boot/vmlinuz-2.6.18-194.el5xen"
 
ramdisk = "/home/xen/initrd-2.6.18-194.el5xen-no-scsi.img"
 
 
:wq
 
 
xm create centos -c
 
 
<nowiki># Nous voilà sur la VM installé via koan</nowiki>
 
yum install kernel-xen-2.6.18-194.el5
 
vi /etc/grub.conf ## configurer default sur kernel non xen
 
 
vi /etc/yum.conf
 
 
exclude=kernel*


On peut maintenant se rendre sur l'interface avec un navigateur avec l'URL <nowiki>https://<cobbler_addr>/cobbler_web</nowiki>
{{Admon/warning|URL cobbler_web|Dans sa nouvelle version, cobbler_web rend obligatoire le protocole '''https'''.}}


:wq
== Trucs et astuces ==


=== Profils ===


reboot
==== Obtenir la liste des profils ====
<pre>
cobbler profile list
  CentOS-5-i386
  CentOS-5-x86_64
  CentOS-5-xen-i386
  CentOS-5-xen-x86_64
  CentOS-6-i386
  CentOS-6-x86_64
  CentOS-7-x86_64
</pre>


==== Obtenir le détail d'un profil ====
<pre>
cobbler profile report --name=CentOS-7-x86_64
Name                          : CentOS-7-x86_64
TFTP Boot Files                : {}
Comment                        :
DHCP Tag                      : default
Distribution                  : CentOS-7-x86_64
Enable gPXE?                  : 0
Enable PXE Menu?              : 1
Fetchable Files                : {}
Kernel Options                : {}
Kernel Options (Post Install)  : {}
Kickstart                      : /var/lib/cobbler/kickstarts/sample_end.ks
Kickstart Metadata            : {}
Management Classes            : []
Management Parameters          : <<inherit>>
Name Servers                  : []
Name Servers Search Path      : []
Owners                        : ['admin']
Parent Profile                :
Proxy                          :
Red Hat Management Key        : <<inherit>>
Red Hat Management Server      : <<inherit>>
Repos                          : []
Server Override                : <<inherit>>
Template Files                : {}
Virt Auto Boot                : 1
Virt Bridge                    : virbr0
Virt CPUs                      : 1
Virt Disk Driver Type          : raw
Virt File Size(GB)            : 8
Virt Path                      :
Virt RAM (MB)                  : 1024
Virt Type                      : kvm
</pre>


<nowiki>## >> Résout: Problem FATAL Module ipv6 not found</nowiki>
==== Obtenir le fichier kickstart d'un profil ====
<pre>
cobbler profile getks --name=CentOS-7-x86_64
</pre>


<nowiki>## Si Problem modules.dep no such file or directory</nowiki>
=== Distributions ===


==== Obtenir la liste des distributions ====
<pre>
cobbler distro list
  CentOS-5-i386
  CentOS-5-x86_64
  CentOS-5-xen-i386
  CentOS-5-xen-x86_64
  CentOS-6-i386
  CentOS-6-x86_64
  CentOS-7-x86_64
</pre>


mkdir /lib/modules/2.6.18-194.el5xen
==== Obtenir la configuration d'une distribution ====


depmod -a
<pre>
cobbler distro report --name=CentOS-7-x86_64
Name                          : CentOS-7-x86_64
Architecture                  : x86_64
TFTP Boot Files                : {}
Breed                          : redhat
Comment                        :
Fetchable Files                : {}
Initrd                        : /var/www/cobbler/ks_mirror/CentOS-7-x86_64/images/pxeboot/initrd.img
Kernel                        : /var/www/cobbler/ks_mirror/CentOS-7-x86_64/images/pxeboot/vmlinuz
Kernel Options                : {}
Kernel Options (Post Install)  : {}
Kickstart Metadata            : {'tree': 'http://@@http_server@@/cblr/links/CentOS-7-x86_64'}
Management Classes            : []
OS Version                    : rhel7
Owners                        : ['admin']
Red Hat Management Key        : <<inherit>>
Red Hat Management Server      : <<inherit>>
Template Files                : {}
</pre>


=== Kickstart ===


reboot
==== Valider les fichiers kickstart ====


|}
<pre>
La VM installé depuis koan est désormais fonctionnelle.
cobbler validateks
task started: 2014-10-30_100015_validateks
task started (id=Kickstart Validation, time=Thu Oct 30 10:00:15 2014)
----------------------------
osversion: rhel5
checking url: http://192.168.0.205/cblr/svc/op/ks/profile/CentOS-5-i386
running: /usr/bin/ksvalidator -v "rhel5" "http://192.168.0.205/cblr/svc/op/ks/profile/CentOS-5-i386"
received on stdout:
received on stderr:
----------------------------
osversion: rhel6
checking url: http://192.168.0.205/cblr/svc/op/ks/profile/CentOS-6-i386
running: /usr/bin/ksvalidator -v "rhel6" "http://192.168.0.205/cblr/svc/op/ks/profile/CentOS-6-i386"
received on stdout:
received on stderr:
----------------------------
osversion: rhel5
checking url: http://192.168.0.205/cblr/svc/op/ks/profile/CentOS-5-xen-i386
running: /usr/bin/ksvalidator -v "rhel5" "http://192.168.0.205/cblr/svc/op/ks/profile/CentOS-5-xen-i386"
received on stdout:
received on stderr:
----------------------------
osversion: rhel5
checking url: http://192.168.0.205/cblr/svc/op/ks/profile/CentOS-5-x86_64
running: /usr/bin/ksvalidator -v "rhel5" "http://192.168.0.205/cblr/svc/op/ks/profile/CentOS-5-x86_64"
received on stdout:
received on stderr:
----------------------------
osversion: rhel5
checking url: http://192.168.0.205/cblr/svc/op/ks/profile/CentOS-5-xen-x86_64
running: /usr/bin/ksvalidator -v "rhel5" "http://192.168.0.205/cblr/svc/op/ks/profile/CentOS-5-xen-x86_64"
received on stdout:
received on stderr:
----------------------------
osversion: rhel6
checking url: http://192.168.0.205/cblr/svc/op/ks/profile/CentOS-6-x86_64
running: /usr/bin/ksvalidator -v "rhel6" "http://192.168.0.205/cblr/svc/op/ks/profile/CentOS-6-x86_64"
received on stdout:
received on stderr:
----------------------------
osversion: rhel7
checking url: http://192.168.0.205/cblr/svc/op/ks/profile/CentOS-7-x86_64
running: /usr/bin/ksvalidator -v "rhel7" "http://192.168.0.205/cblr/svc/op/ks/profile/CentOS-7-x86_64"
received on stdout:
received on stderr:
*** all kickstarts seem to be ok ***
*** TASK COMPLETE ***
</pre>


= Editer la taille des partitions avec les snippets =
=== Trucs et astuces concernant Koan ===
Par défaut, cobbler utilise tout l'espace du disque dur qu'il assigne à la partition /, on peut vouloir définir les partitions en fonction de la taille du disque. Pour cela, nous allons utiliser les snippets kickstart de cobbler. Les snippets (ou extraits) de kickstart sont un moyen de réutiliser les blocs de code commun entre les fichiers kickstart.


Donc pour pouvoir définir la taille d'une ou plusieurs partitions systèmes on procède ainsi:
Modifier les valeurs par défaut d'un profil concernant:
 
* la taille du disque virtuel<pre>cobbler profile edit --name=CentOS-7-x86_64 --virt-file-size=8</pre>
Fichier <path>/var/lib/cobbler/snippets/pre_partition</path>
* le nom de l'interface du bridge<pre>cobbler profile edit --name=CentOS-7-x86_64 --virt-bridge=virbr0</pre>
<syntaxhighlight lang="kixtart">
* la RAM allouée<pre>cobbler profile edit --name=CentOS-7-x86_64 --virt-ram=1024</pre>
#set $hostname = $getVar('$hostname', None)
* le nombre de CPU<pre>cobbler profile edit --name=CentOS-7-x86_64 --virt-cpus=2</pre>
#set $hostpart = $getVar('$hostpart', None)
#set $disk = $getVar('$disk', 'sda')
 
#if $hostname == None
#set $vgname = "VolGroup00"
#else
 
#if $hostpart == None
#set $hostpart = $hostname.split('.')[0]
#set $vgname = $hostpart + '_sys'
#end if
 
#end if
 
clearpart --drives=$disk --initlabel
part /boot --fstype ext3 --size=200 --asprimary
part swap --size=12000 --asprimary
part pv.00 --size=100 --grow --asprimary
volgroup $vgname pv.00
logvol / --vgname=$vgname --size=60000 --name=sysroot --fstype ext3
logvol /home --vgname=$vgname --size=20000 --name=tmp --fstype ext3
logvol /var --vgname=$vgname --size=20000 --name=var --fstype ext3
 
#if $hostpart == "bing"
#logvol /var/www --vgname=$vgname --size=1000 --name=www
#else if $hostpart == "build32"
#logvol /var/fakedirectory --vgname=$vgname --size=123456789 --name=fake
#end if
</syntaxhighlight>


On peut ajuster les partitions et la taille allouée en fonction des besoins.
== Koan ==


On crée ensuite un nouveau fichier kickstart en se basant sur celui par défaut et on édite celui-ci:
Il faut [[#Trucs_et_astuces_concernant_Koan|modifier la configuration de cobbler]] pour pouvoir l'utiliser avec kvm/qemu
* default_virt_bridge: virbr0
* default_virt_file_size: 8
* default_virt_ram: 1024
* default_virt_type: kvm


cp /var/lib/cobbler/kickstarts/sample.ks /var/lib/cobbler/kickstarts/custom.ks
Koan permet l'installation de machine virtuelle. Koan signifie: kickstart over a network, on l'utilise donc sur un serveur de virtualisation afin de nous installer des machines virtuelles via cobbler.
<pre>
koan --virt --profile=CentOS-6-x86_64 --server=192.168.0.205 --virt-name=test --virt-type=kvm \
    --qemu-net-type=virtio --qemu-disk-type=virtio --virt-bridge=virbr0


Fichier <path>/var/lib/cobbler/kickstarts/custom.ks</path>
- looking for Cobbler at http://192.168.0.205:80/cobbler_api
- reading URL: http://192.168.0.205/cblr/svc/op/ks/profile/CentOS-7-x86_64
install_tree: http://192.168.0.205/cblr/links/CentOS-7-x86_64
- ['/usr/bin/virt-install', '--version']
1.0.1
- ['virt-install', '--version']
1.0.1
- ['virt-install', '--os-variant', 'list']
- ['qemu-img', 'create', '-f', 'raw', '/var/lib/libvirt/images//test-disk0', '8G']
Formatting '/var/lib/libvirt/images//test-disk0', fmt=raw size=8589934592
- warning: old virt-install detected, a lot of features will be disabled
- adding disk: /var/lib/libvirt/images//test-disk0 of size 8 (driver type=raw)
- ['virt-install', '--connect', 'qemu:///system', '--name', 'test', '--ram', '1024', '--vcpus', '1', '--vnc', '--accelerate',
  '--location', 'http://192.168.0.205/cblr/links/CentOS-7-x86_64/',
  '--extra-args=ks=http://192.168.0.205/cblr/svc/op/ks/profile/CentOS-7-x86_64 ksdevice=link kssendmac lang= text ',
  '--arch', 'x86_64', '--os-variant', 'rhel7', '--disk', 'path=/var/lib/libvirt/images//test-disk0,size=8,bus=virtio',
  '--network', 'bridge=virbr0', '--wait', '0', '--noautoconsole']


  # avant: %pre
Début d'installation...
  # supprimer la ligne: autopart
Récupération du fichier .treeinfo...                                                    | 1.9 kB  00:00:00 !!!
  # ajouter: $SNIPPET('pre_partition')
Récupération du fichier vmlinuz...                                                      | 9.4 MB 00:00:00 !!!
Récupération du fichier initrd.img...                                                  | 67 MB  00:00:00 !!!
Création du domaine...                                                                  |  0 B  00:00:00   
Installation du domaine encore en cours. Vous pouvez vous reconnecter à
la console pour terminer le processus d'installation.
</pre>


On édite ensuite le profil concerné via l'interface web de cobbler et on précise que l'on veut utiliser le fichier kickstart custom.ks au lieu de sample.ks, il faut pour finir lancer un sync de cobbler pour qu'il prenne en compte les modifications.
== Références ==
<references/>

Dernière version du 6 novembre 2014 à 13:52

Introduction

Cobbler[1] est un serveur d'installation qui permet d'installer facilement et automatiquement des systèmes d'exploitations, virtualisés ou non via PXE.

Sur CentOS 7, les principales différences par rapport à une installation sur CentOS 6 sont:

  • Pas de paquet <package>debmirror</package> officiellement disponible
  • Disparition du daemon rsync
  • Remplacement des commandes <app>iptables</app> par <app>firewalld</app>

Interactions de Cobbler avec son environnement

Installation

Modification du service DHCP

Si le serveur DHCPd n'est pas la même machine que le serveur cobbler, il faut déclarer le serveur Cobbler sur le serveur DHCPd:

Fichier <path>/etc/dhcp/dhcpd.conf</path>

...
 allow booting;
 allow bootp;
 filename "pxelinux.0";
 next-server 192.168.0.205;
...

On redémarre le service DHCPd

service dhcpd restart

Installation de cobbler

Sur un serveur fraichement installé en CentOS 7:

  • Mise en place du nom d'hôte
    hostnamectl set-hostname cobbler.home.net
  • Redémarrage du serveur
  • Installation du dépôt EPEL
    rpm -Uvh http://mirror.ibcp.fr/pub/epel/7/x86_64/e/epel-release-7-2.noarch.rpm
  • Installation des paquets
    yum -y install cobbler pykickstart tftp
  • Activation du service tftpd (xinetd)
    sed -i -e '/disable/ s/yes/no/' /etc/xinetd.d/tftp
  • Démarrage et activation des services concernés: httpd, xinetd et cobblerd
    for service in xinetd httpd cobblerd ; do systemctl start $service ; systemctl enable $service ; done

Installation de debmirror

  • Téléchargement du RPM noarch debmirror
  • Installation
    yum localinstall debmirror-2.14-2.el7.noarch.rpm
  • Mise en commentaire des lignes suivantes dans le fichier <path>/etc/debmirror.conf</path>
    #@dists="sid";
    #@arches="i386";

Configuration

Firewall

  • Open for HTTP
    firewall-cmd --permanent --add-service=http
  • Open for HTTPS
    firewall-cmd --permanent --add-service=https
  • Open for TFTP
    firewall-cmd --permanent --add-service=tftp
  • Open for Cobbler
    firewall-cmd --permanent --add-port=25151/tcp
  • Open for TFTP
    firewall-cmd --permanent --add-port=69/tcp
  • Reload firewall
    firewall-cmd --reload

SELinux

Au niveau configuration, on va dans un premier temps s'occuper de SELinux[2].

setsebool -P httpd_can_network_connect true
setsebool -P cobbler_can_network_connect true
semanage fcontext -a -t public_content_t "/var/lib/tftpboot/.*"
restorecon -Rv /var/lib/tftpboot

Cobbler

Puis dans le fichier de configuration <path>/etc/cobbler/settings</path>, on va:

  • Définir un mot de passe crypté qui sera le mot de passe root pour les machines installées en PXE
  • Modifier l'adresse IP du serveur cobbler.

On commence donc par créer le mot de passe crypté à l'aide d'openssl.

openssl passwd -1

On peut donc maintenant éditer le fichier de configuration du serveur cobbler: Fichier <path>/etc/cobbler/settings</path>

default_password_crypted: <mot-de-passe-crypté>
next_server: 192.168.0.205
server: 192.168.0.205

On va maintenant télécharger les boot-loaders

cobbler get-loaders

Redémarrage du cobbler

systemctl restart cobblerd

Synchronisation

cobbler sync

Et vérification

cobbler check
No configuration problems found.  All systems go.

Cobbler est maintenant correctement configuré.

Ajout de distributions

  • On monte l'image ISO du DVD
    mount -t iso9660 -o loop,ro /downloads/CentOS-5.5-x86_64-core.iso /mnt/
  • On l'importe dans cobbler
    cobbler import --path=/mnt --name=CentOS-5-x86_64
    Et pour Ubuntu
    cobbler import --name=Ubuntu-14.04-trusty-x86_64 --breed=ubuntu --os-version=trusty --arch=x86_64 --path=/mnt/ubuntu/14.04/
Important.png
Validation des modifications
On applique les changements en relançant le daemon et en lançant la synchronisation
systemctl restart cobblerd && cobbler sync

Suppression de distributions

Pour supprimer une distribution:

  • On supprime le(s) profile(s) qui nécessite la distribution
    cobbler profile remove --name=CentOS-6-x86_64
  • On supprime la distribution
    cobbler distro remove --name=CentOS-6-x86_64
Important.png
Validation des modifications
On applique les changements en relançant le daemon et en lançant la synchronisation
systemctl restart cobblerd && cobbler sync

Francisation

Modification des fichiers kickstart par défaut.

Pour toutes les distributions (boot PXE rescue)

Modification du fichier <path>/var/lib/cobbler/kickstarts/pxerescue.ks</path>

lang fr_FR
keyboard "fr-latin9"

Spécifiquement pour les distribution Debian/Ubuntu

Modification du fichier <path>/var/lib/cobbler/kickstarts/sample.seed</path>

d-i debian-installer/locale string fr_FR
d-i keyboard-configuration/layoutcode string fr-latin9
d-i time/zone string Europe/Paris

Modification du fichier <path>/var/lib/cobbler/kickstarts/sample_old.seed</path>

d-i     console-keymaps-at/keymap       select  fr-latin9
tzsetup-udeb    time/zone       select  Europe/Paris

Spécifiquement pour les distribution Redhat/Centos/Fedora

Modification du fichier <path>/var/lib/cobbler/kickstarts/sample.ks</path>, du fichier <path>/var/lib/cobbler/kickstarts/sample_end.ks</path> et du fichier <path>/var/lib/cobbler/kickstarts/legacy.ks</path>

keyboard fr-latin9
lang fr_FR
timezone --utc Europe/Paris
Important.png
Validation des modifications
On applique les changements en relançant le daemon et en lançant la synchronisation
systemctl restart cobblerd && cobbler sync

Kickstart et Snippets

Les snippets (ou extraits) de kickstart sont un moyen de réutiliser les blocs de code commun entre les fichiers kickstart.

Warning.png
Utilisation des snippets avec debian/ubuntu
Les snippets ne peuvent pas être directement inclus dans le fichier sample.seed. Ils doivent être exécuter par un script. Le plus simple est d'inclure le snippet dans un script existant et exécuté par sample.seed (ex: <path>/var/lib/cobbler/scripts/preseed_late_default</path>)

Editer la taille des partitions avec les snippets

Par défaut, cobbler utilise tout l'espace du disque dur qu'il assigne à la partition /, on peut vouloir définir les partitions en fonction de la taille du disque. Pour cela, nous allons utiliser les snippets kickstart de cobbler.

Donc pour pouvoir définir la taille d'une ou plusieurs partitions

On créé un snippet: fichier <path>/var/lib/cobbler/snippets/partition_config</path>

part /boot --size=200 --recommended --asprimary
part pv.01 --size=1024 --grow
volgroup vg0 pv.01
logvol /    --vgname=vg0 --name=lv0 --size=1024 --maxsize=3072 --grow
logvol /var --vgname=vg0 --name=lv1 --size=512  --maxsize=1024 --grow
logvol swap --vgname=vg0 --name=lv2 --size=1024 --maxsize=2048

Dans tous les fichiers kickstart (sample*.ks), on remplace la ligne

autopart

par

$SNIPPET('partition_config')

Mise à jour de la distribution

On créé un snippet: fichier <path>/var/lib/cobbler/snippets/yum_update</path>

# Update package
yum update -y

Dans tous les fichiers kickstart (sample*.ks), on insert la ligne suivante à la fin du fichier

$SNIPPET('yum_update')

Autorisation des connexions ssh par clés publiques

On créé un snippet: fichier <path>/var/lib/cobbler/snippets/ssh_public_keys</path>

# Public key to import
mkdir /root/.ssh
chmod 700 /root/.ssh
touch /root/.ssh/authorized_keys
chmod 600 /root/.ssh/authorized_keys

# Didier
echo 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCgXXO+1osvzeWottxs1HGLtycjR0Y/CnBH4Q0vvz0QTifw6d2Dkwmt7WhPU3kAeauGMJr295lfjCsIW57y
qhp7jFG64AHMD8bdBlLcxZiHffA0tDUXPobESfCqoymimr32ubE7HgoyKaw4TScL6DRbny+d6B+5mSFHCu/vJcJYOfoobdr5drWscvh0c7t3POxFT/MRS4rI17hbAQ
0QdF81jtKst9+kUD9bB0cJFPZ4GuVHD6re8vVWxm86IQ+1/kpIzXKWtFld3o7jKD21c3wDxu7o5eD2wf7eY+3hLHmYYX4lhwqnT1rKfyxmDLH38J8qzjuCiEVsD143
B1hwQiwJ didier@didier.b2pweb.com' >> /root/.ssh/authorized_keys

Dans tous les fichiers kickstart (sample*.ks), on insert la ligne suivante à la fin du fichier, ainsi que dans le fichier <path>/var/lib/cobbler/scripts/preseed_late_default</path> (debian)

$SNIPPET('ssh_public_keys')

Exécution conditionnelle dans le kickstart

On va se servir de variables dans le fichier kickstart. Pour cela on va affecter deux variables à certains profils:

  • el: pour indiquer la version majeure de notre CentOS
  • type: pour préciser le type: minimal, desktop, etc...
cobbler profile edit --name Centos-6-x86_64-Desktop --ksmeta="el=6 type=desktop"
cobbler profile edit --name Centos-7-x86_64-Desktop --ksmeta="el=7 type=desktop"

Ex: On veut pouvoir spécifier des paquets différent à installer en fonction de la version et du type d'installation

#set $el_type = $getVar('type', 'minimal')
#set $el_version = $getVar('el', '5')
#if $el_type == "desktop"
@base
@network-tools
@x11
@graphical-admin-tools
#if $el_version == "6"
@desktop-platform
@basic-desktop
#else if $el_version == "7"
@gnome-desktop
#end if
#end if

Interface Web

On va maintenant installer l'interface web permettant l'administration de cobbler puis la configurer:

yum install cobbler-web

Il faut s'assurer que le fichier <path>/etc/cobbler/modules.conf</path> contienne bien les lignes suivantes:

[authentication]
module = authn_configfile

[authorization]
module = authz_allowall

On créer le fichier de mot de passe <path>/etc/cobbler/users.digest</path> en mettant le login à cobbler et le mot de passe à cobbler

htdigest -c /etc/cobbler/users.digest "Cobbler" cobbler

On redémarre les services cobbler et apache

systemctl restart cobblerd
systemctl restart httpd

On peut maintenant se rendre sur l'interface avec un navigateur avec l'URL https://<cobbler_addr>/cobbler_web

Warning.png
URL cobbler_web
Dans sa nouvelle version, cobbler_web rend obligatoire le protocole https.

Trucs et astuces

Profils

Obtenir la liste des profils

cobbler profile list
   CentOS-5-i386
   CentOS-5-x86_64
   CentOS-5-xen-i386
   CentOS-5-xen-x86_64
   CentOS-6-i386
   CentOS-6-x86_64
   CentOS-7-x86_64

Obtenir le détail d'un profil

cobbler profile report --name=CentOS-7-x86_64
Name                           : CentOS-7-x86_64
TFTP Boot Files                : {}
Comment                        : 
DHCP Tag                       : default
Distribution                   : CentOS-7-x86_64
Enable gPXE?                   : 0
Enable PXE Menu?               : 1
Fetchable Files                : {}
Kernel Options                 : {}
Kernel Options (Post Install)  : {}
Kickstart                      : /var/lib/cobbler/kickstarts/sample_end.ks
Kickstart Metadata             : {}
Management Classes             : []
Management Parameters          : <<inherit>>
Name Servers                   : []
Name Servers Search Path       : []
Owners                         : ['admin']
Parent Profile                 : 
Proxy                          : 
Red Hat Management Key         : <<inherit>>
Red Hat Management Server      : <<inherit>>
Repos                          : []
Server Override                : <<inherit>>
Template Files                 : {}
Virt Auto Boot                 : 1
Virt Bridge                    : virbr0
Virt CPUs                      : 1
Virt Disk Driver Type          : raw
Virt File Size(GB)             : 8
Virt Path                      : 
Virt RAM (MB)                  : 1024
Virt Type                      : kvm

Obtenir le fichier kickstart d'un profil

cobbler profile getks --name=CentOS-7-x86_64

Distributions

Obtenir la liste des distributions

cobbler distro list
   CentOS-5-i386
   CentOS-5-x86_64
   CentOS-5-xen-i386
   CentOS-5-xen-x86_64
   CentOS-6-i386
   CentOS-6-x86_64
   CentOS-7-x86_64

Obtenir la configuration d'une distribution

cobbler distro report --name=CentOS-7-x86_64
Name                           : CentOS-7-x86_64
Architecture                   : x86_64
TFTP Boot Files                : {}
Breed                          : redhat
Comment                        : 
Fetchable Files                : {}
Initrd                         : /var/www/cobbler/ks_mirror/CentOS-7-x86_64/images/pxeboot/initrd.img
Kernel                         : /var/www/cobbler/ks_mirror/CentOS-7-x86_64/images/pxeboot/vmlinuz
Kernel Options                 : {}
Kernel Options (Post Install)  : {}
Kickstart Metadata             : {'tree': 'http://@@http_server@@/cblr/links/CentOS-7-x86_64'}
Management Classes             : []
OS Version                     : rhel7
Owners                         : ['admin']
Red Hat Management Key         : <<inherit>>
Red Hat Management Server      : <<inherit>>
Template Files                 : {}

Kickstart

Valider les fichiers kickstart

cobbler validateks
task started: 2014-10-30_100015_validateks
task started (id=Kickstart Validation, time=Thu Oct 30 10:00:15 2014)
----------------------------
osversion: rhel5
checking url: http://192.168.0.205/cblr/svc/op/ks/profile/CentOS-5-i386
running: /usr/bin/ksvalidator -v "rhel5" "http://192.168.0.205/cblr/svc/op/ks/profile/CentOS-5-i386"
received on stdout: 
received on stderr: 
----------------------------
osversion: rhel6
checking url: http://192.168.0.205/cblr/svc/op/ks/profile/CentOS-6-i386
running: /usr/bin/ksvalidator -v "rhel6" "http://192.168.0.205/cblr/svc/op/ks/profile/CentOS-6-i386"
received on stdout: 
received on stderr: 
----------------------------
osversion: rhel5
checking url: http://192.168.0.205/cblr/svc/op/ks/profile/CentOS-5-xen-i386
running: /usr/bin/ksvalidator -v "rhel5" "http://192.168.0.205/cblr/svc/op/ks/profile/CentOS-5-xen-i386"
received on stdout: 
received on stderr: 
----------------------------
osversion: rhel5
checking url: http://192.168.0.205/cblr/svc/op/ks/profile/CentOS-5-x86_64
running: /usr/bin/ksvalidator -v "rhel5" "http://192.168.0.205/cblr/svc/op/ks/profile/CentOS-5-x86_64"
received on stdout: 
received on stderr: 
----------------------------
osversion: rhel5
checking url: http://192.168.0.205/cblr/svc/op/ks/profile/CentOS-5-xen-x86_64
running: /usr/bin/ksvalidator -v "rhel5" "http://192.168.0.205/cblr/svc/op/ks/profile/CentOS-5-xen-x86_64"
received on stdout: 
received on stderr: 
----------------------------
osversion: rhel6
checking url: http://192.168.0.205/cblr/svc/op/ks/profile/CentOS-6-x86_64
running: /usr/bin/ksvalidator -v "rhel6" "http://192.168.0.205/cblr/svc/op/ks/profile/CentOS-6-x86_64"
received on stdout: 
received on stderr: 
----------------------------
osversion: rhel7
checking url: http://192.168.0.205/cblr/svc/op/ks/profile/CentOS-7-x86_64
running: /usr/bin/ksvalidator -v "rhel7" "http://192.168.0.205/cblr/svc/op/ks/profile/CentOS-7-x86_64"
received on stdout: 
received on stderr: 
*** all kickstarts seem to be ok ***
*** TASK COMPLETE ***

Trucs et astuces concernant Koan

Modifier les valeurs par défaut d'un profil concernant:

  • la taille du disque virtuel
    cobbler profile edit --name=CentOS-7-x86_64 --virt-file-size=8
  • le nom de l'interface du bridge
    cobbler profile edit --name=CentOS-7-x86_64 --virt-bridge=virbr0
  • la RAM allouée
    cobbler profile edit --name=CentOS-7-x86_64 --virt-ram=1024
  • le nombre de CPU
    cobbler profile edit --name=CentOS-7-x86_64 --virt-cpus=2

Koan

Il faut modifier la configuration de cobbler pour pouvoir l'utiliser avec kvm/qemu

  • default_virt_bridge: virbr0
  • default_virt_file_size: 8
  • default_virt_ram: 1024
  • default_virt_type: kvm

Koan permet l'installation de machine virtuelle. Koan signifie: kickstart over a network, on l'utilise donc sur un serveur de virtualisation afin de nous installer des machines virtuelles via cobbler.

koan --virt --profile=CentOS-6-x86_64 --server=192.168.0.205 --virt-name=test --virt-type=kvm \
     --qemu-net-type=virtio --qemu-disk-type=virtio --virt-bridge=virbr0

- looking for Cobbler at http://192.168.0.205:80/cobbler_api
- reading URL: http://192.168.0.205/cblr/svc/op/ks/profile/CentOS-7-x86_64
install_tree: http://192.168.0.205/cblr/links/CentOS-7-x86_64
- ['/usr/bin/virt-install', '--version']
1.0.1
- ['virt-install', '--version']
1.0.1
- ['virt-install', '--os-variant', 'list']
- ['qemu-img', 'create', '-f', 'raw', '/var/lib/libvirt/images//test-disk0', '8G']
Formatting '/var/lib/libvirt/images//test-disk0', fmt=raw size=8589934592 
- warning: old virt-install detected, a lot of features will be disabled
- adding disk: /var/lib/libvirt/images//test-disk0 of size 8 (driver type=raw)
- ['virt-install', '--connect', 'qemu:///system', '--name', 'test', '--ram', '1024', '--vcpus', '1', '--vnc', '--accelerate',
  '--location', 'http://192.168.0.205/cblr/links/CentOS-7-x86_64/',
  '--extra-args=ks=http://192.168.0.205/cblr/svc/op/ks/profile/CentOS-7-x86_64 ksdevice=link kssendmac lang= text ',
  '--arch', 'x86_64', '--os-variant', 'rhel7', '--disk', 'path=/var/lib/libvirt/images//test-disk0,size=8,bus=virtio',
  '--network', 'bridge=virbr0', '--wait', '0', '--noautoconsole']

Début d'installation...
Récupération du fichier .treeinfo...                                                    | 1.9 kB  00:00:00 !!! 
Récupération du fichier vmlinuz...                                                      | 9.4 MB  00:00:00 !!! 
Récupération du fichier initrd.img...                                                   |  67 MB  00:00:00 !!! 
Création du domaine...                                                                  |   0  B  00:00:00     
Installation du domaine encore en cours. Vous pouvez vous reconnecter à 
la console pour terminer le processus d'installation.

Références