« Installation/Cobbler » : différence entre les versions
Aucun résumé des modifications |
Aucun résumé des modifications |
||
| Ligne 1 : | Ligne 1 : | ||
= Introduction = | == Introduction == | ||
= Installation = | Cobbler est un serveur d'installation qui permet d'installer facilement et automatiquement des systèmes d'exploitations, virtualisés ou non via PXE. | ||
== 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> | Fichier <path>/etc/dhcp/dhcpd.conf</path> | ||
<pre> | |||
... | |||
allow booting; | |||
allow bootp; | |||
filename "pxelinux.0"; | |||
next-server 192.168.0.205; | |||
... | |||
</pre> | |||
On redémarre le service DHCPd | |||
service dhcpd restart | |||
=== Installation de cobbler === | |||
On | Sur un serveur fraichement installé en CentOS 7: | ||
* On désactive SELinux<pre>sed -i -e '/SELINUX/ s/enforcing/disabled/' /etc/sysconfig/selinux</pre><pre>sed -i -e '/SELINUX/ s/enforcing/disabled/' /etc/selinux/config</pre> | |||
* 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<pre>for service in xinetd httpd cobblerd ; do systemctl start $service ; systemctl enable $service ; done</pre> | |||
== Configuration == | |||
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. | 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. | ||
| Ligne 193 : | Ligne 198 : | ||
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. | 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. | ||
Version du 23 octobre 2014 à 12:40
Introduction
Cobbler est un serveur d'installation qui permet d'installer facilement et automatiquement des systèmes d'exploitations, virtualisés ou non via PXE.
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:
- On désactive SELinux
sed -i -e '/SELINUX/ s/enforcing/disabled/' /etc/sysconfig/selinux
sed -i -e '/SELINUX/ s/enforcing/disabled/' /etc/selinux/config
- 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
for service in xinetd httpd cobblerd ; do systemctl start $service ; systemctl enable $service ; done
Configuration
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.
# /usr/bin/htpasswd -nd root New password: [cobbler] Re-type new password: [cobbler] root:xH.KydRoK8CyQ
On peut donc maintenant éditer le fichier de configuration du serveur 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:
# yum install tftp tftp-server xinetd
On redémarre les daemons xinet et cobbler et on les inscrit au démarrage automatique
# /etc/init.d/xinetd start # /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é:
# cobbler check No configuration problems found. All systems go.
# /etc/init.d/httpd start
On active le daemon rsync ( via xinetd ) en éditant le fichier <path>/etc/xinetd.d/rsync</path>
disable = no
On installe cman
# yum install cman
# cobbler get-loaders
Installation de debmirror
# yum install debmirror
Edition du fichier <path>/etc/debmirror.conf</path> et mise en commentaire des lignes suivantes
#@dists="sid"; #@arches="i386";
Redémarrage du cobbler
# /etc/init.d/cobblerd restart
Synchronisation
# cobbler sync
Et vérification
# 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.
Nous avons donc customisé un CentOS à l'aide du CD1 de CentOS. C'est donc cet ISO custom que l'on va utiliser pour l'import.
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:
# mount -t auto -o loop /downloads/CentOS-5.5-x86_64-core.iso /mnt/ # cobbler import --path=/mnt --name=Centos5 –arch=x86_64
# cobbler sync
# cobbler list 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.
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.
On procède ainsi:
- installer une CentOS de façon traditionnelle avec le minimun de paquets installés (éditeur vim)
- 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
- on peut maintenant mettre à jour les paquets puis les récupérer avec yumdownloader:
# mkdir /tmp/rpm # 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:
# yum install createrepo # createrepo /tmp/rpm/
Puis on déclare le repo dans cobbler:
# cobbler repo add --mirror=/tmp/rpm/ --name=centos5-local # cobbler reposync
On peut maintenant voir le repo avec:
# cobbler list repos: centos5-local
On va ensuite modifier le fichier kickstart par défaut qui est le fichier permettant l'automatisation de l'installation de CentOS:
# cd /var/lib/cobbler/kickstarts/ # mv sample.ks sample.ks_bak
Fichier <path>sample.ks</path>
auth --useshadow --enablemd5
bootloader --location=mbr
clearpart --all --initlabel
text
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
selinux --disabled
skipx
timezone --utc Europe/Paris
install
zerombr
autopart
%pre
$SNIPPET('log_ks_pre')
$kickstart_start
$SNIPPET('pre_install_network_config')
# Enable installation monitoring
$SNIPPET('pre_anamon')
%packages
$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_doneLa 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.