Alphorm.com Formation Scripting Bash avancé pour GNU/Linux
Cobbler puppet
1. cobbler et Puppet
William Hoffmann
Programme
Détails techniques
Introduction
cobbler
Pour une administration sereine et
Puppet détendue
Démonstration
Pour finir
William Hoffmann - Senior Instructor
Red Hat France
12 Décembre 2010
1/23
Pour une administration sereine et détendue ± Forward
2. cobbler et Puppet
Programme des réjouissances
William Hoffmann
Programme
Détails techniques 1 Détails techniques
Introduction
cobbler
Puppet
Démonstration
Pour finir
2/23
Pour une administration sereine et détendue ± Back ± Forward
3. cobbler et Puppet
Programme des réjouissances
William Hoffmann
Programme
Détails techniques 1 Détails techniques
Introduction
cobbler
Puppet 2 Introduction
Démonstration
Pour finir
2/23
Pour une administration sereine et détendue ± Back ± Forward
4. cobbler et Puppet
Programme des réjouissances
William Hoffmann
Programme
Détails techniques 1 Détails techniques
Introduction
cobbler
Puppet 2 Introduction
Démonstration
Pour finir
3 cobbler
2/23
Pour une administration sereine et détendue ± Back ± Forward
5. cobbler et Puppet
Programme des réjouissances
William Hoffmann
Programme
Détails techniques 1 Détails techniques
Introduction
cobbler
Puppet 2 Introduction
Démonstration
Pour finir
3 cobbler
4 Puppet
2/23
Pour une administration sereine et détendue ± Back ± Forward
6. cobbler et Puppet
Programme des réjouissances
William Hoffmann
Programme
Détails techniques 1 Détails techniques
Introduction
cobbler
Puppet 2 Introduction
Démonstration
Pour finir
3 cobbler
4 Puppet
5 Démonstration
2/23
Pour une administration sereine et détendue ± Back ± Forward
7. cobbler et Puppet
Programme des réjouissances
William Hoffmann
Programme
Détails techniques 1 Détails techniques
Introduction
cobbler
Puppet 2 Introduction
Démonstration
Pour finir
3 cobbler
4 Puppet
5 Démonstration
6 Pour finir
2/23
Pour une administration sereine et détendue ± Back ± Forward
8. cobbler et Puppet
Matériel utilisé
William Hoffmann
Programme Pour cette courte présentation j’ai utilisé :
Détails techniques
Mon fidèle T60 (2Go de RAM/160Go)
Introduction
1 réseau bridgé vers l’exterieur
cobbler
1 réseau privé en 172.31.10.0/16 pour
Puppet
l’infrastructure de démo.
Démonstration
Pour finir
Une bonne vieille F11
3 machines virtuelles
1 machine virtuelle : server1.example.com en
RHEL-5.4 :
cobbler + puppet
dhcp sur le réseau example.com (172.31.10.0/16)
dns pour example.com
2 machines virtuelles : {mail,web}.example.com
Installées via cobbler et configurées via puppet
clientes dhcp sur le réseau example.com
(172.31.10.0/16)
3/23
Pour une administration sereine et détendue ± Back ± Forward
9. cobbler et Puppet
La fin de la bidouille
William Hoffmann
1000 comme 10
Programme
Détails techniques L’utilisation conjointe de cobbler et Puppet permet
Introduction d’optimiser et d’industrialiser le cycle classique d’un
cobbler
Système d’Information (le fameux SI) :
Puppet
Démonstration
Pour finir
4/23
Pour une administration sereine et détendue ± Back ± Forward
10. cobbler et Puppet
La fin de la bidouille
William Hoffmann
1000 comme 10
Programme
Détails techniques L’utilisation conjointe de cobbler et Puppet permet
Introduction d’optimiser et d’industrialiser le cycle classique d’un
cobbler
Système d’Information (le fameux SI) :
Puppet
Démonstration
Test
Pour finir
4/23
Pour une administration sereine et détendue ± Back ± Forward
11. cobbler et Puppet
La fin de la bidouille
William Hoffmann
1000 comme 10
Programme
Détails techniques L’utilisation conjointe de cobbler et Puppet permet
Introduction d’optimiser et d’industrialiser le cycle classique d’un
cobbler
Système d’Information (le fameux SI) :
Puppet
Démonstration
Test
Pour finir Pre-prod
4/23
Pour une administration sereine et détendue ± Back ± Forward
12. cobbler et Puppet
La fin de la bidouille
William Hoffmann
1000 comme 10
Programme
Détails techniques L’utilisation conjointe de cobbler et Puppet permet
Introduction d’optimiser et d’industrialiser le cycle classique d’un
cobbler
Système d’Information (le fameux SI) :
Puppet
Démonstration
Test
Pour finir Pre-prod
Prod
cobbler et Puppet nous permettent de mettre en pratique
le vieil adage : "Don’t scale with using people"
4/23
Pour une administration sereine et détendue ± Back ± Forward
13. cobbler et Puppet
cobbler et Puppet
William Hoffmann
C’est quoi ces trucs ?
Programme
Détails techniques cobbler permet la configuration rapide et simple
Introduction d’environnements d’installation réseau, qui permettent
cobbler
d’installer rapidement et simplement de nouveaux
Puppet
systèmes en ayant plusieurs profiles disponibles.
Démonstration
Puppet est un système pour automatiser les tâches
Pour finir
d’administration système classiques : déployement de
fichiers de configuration, installation de nouveaux
logiciels, configuration de services.
5/23
Pour une administration sereine et détendue ± Back ± Forward
14. cobbler et Puppet
Architecture de cobbler
William Hoffmann
Programme cobbler un frontend unique pour utiliser et configurer un
Détails techniques serveur dhcp, un serveur tftp, il va nous permettre aussi
Introduction
de gérer les différentes versions de nos distributions
cobbler
(Fedora {6..12}, RHEL {4,5}-{U0-Un})
Puppet
cobbler va nous permettre de garder synchronisés :
Démonstration
Pour finir DHCP.
TFTP.
DNS.
Profiles de machines.
dépots & distributions.
fichiers kickstarts.
6/23
Pour une administration sereine et détendue ± Back ± Forward
15. cobbler et Puppet
Installation
William Hoffmann
Programme Sur fedora, cobbler est dans les dépôts officiels il suffit de
Détails techniques faire :
Introduction
[admin@server1 ~] sudo /usr/bin/yum -y install cobbler
cobbler
Puppet Sur une RHEL le moyen le plus simple est d’utiliser le
Démonstration dépôt EPEL, il faut donc installer le package epel-release
Pour finir et utiliser yum :
[admin@server1 ~] sudo /usr/bin/rpm -ivh
epel-release..rpm
[admin@server1 ~] sudo /usr/bin/yum -y
install cobbler
7/23
Pour une administration sereine et détendue ± Back ± Forward
16. cobbler et Puppet
Configuration
William Hoffmann
/etc/cobbler/settings
Programme
Détails techniques La première chose à faire est de configuer sudo, pour
Introduction déléguer à l’utilisateur admin, le droit d’utiliser la
cobbler
commande cobbler :
Puppet
Cmnd_Alias COBBLER = /usr/bin/cobbler
Démonstration
%admin ALL = ... COBBLER
Pour finir
Puis définir quelques paramètres dans
/etc/cobbler/settings :
default_kickstart: /var/lib/cobbler/
kickstarts/default.ks
default_password_crypted: "$1$HnnJr5sU
$1E550pg82P.qJmm0oVuNN."
manage_forward_zones: "example.com"
manage_reverse_zones: "172.31.10"
8/23
Pour une administration sereine et détendue ± Back ± Forward
17. cobbler et Puppet
Configuration
William Hoffmann
Choix des modules
Programme
Détails techniques En plus du /etc/cobbler/settings, il y a d’autres
Introduction fichiers qui peuvent s’avérer intéressants comme le
cobbler
/etc/cobbler/modules qui permet de choisir son
Puppet
serveur dns et son serveur dhcp :
Démonstration
[dns]
Pour finir
module = manage_bind
[dhcp]
module = manage_isc
Il faut ensuite adapter les fichiers de modèles comme
/etc/cobbler/dhcpd.template, ces fichiers seront
utilisés à chaque synchronisation de cobbler, c’est
pourquoi il ne faut jamais éditer les fichers comme
/etc/dhcpd.conf.
9/23
Pour une administration sereine et détendue ± Back ± Forward
18. cobbler et Puppet
Configuration
William Hoffmann
Kickstarts
Programme
Détails techniques Pour installer les machines cobbler utilise des fichiers
Introduction kickstart, il est possible de préciser à chaque fois quel
cobbler
fichier utiliser, mais il est plus simple de définir un fichier
Puppet
kickstart minimal qui servira de base pour toutes les
Démonstration
installations. Ce fichier est à copier dans
Pour finir
/var/lib/cobbler/kickstarts/default.ks.
Il faut aussi noter quelques paramètres kickstart utilisés
uniquement avec cobbler :
$kickstart_start
$yum_config_stanza
$kickstart_done
10/23
Pour une administration sereine et détendue ± Back ± Forward
19. cobbler et Puppet
Configuration
William Hoffmann
SNIPPET
Programme
Détails techniques Une fonctionnalité intéressante de cobbler est la
Introduction possibilité d’utiliser des "snippets", ainsi la création d’un
cobbler
fichier /var/lib/cobbler/snippet/puppet_name,
Puppet
contenant :
Démonstration
echo ’PUPPET_SERVER=server1.example.com ’
Pour finir
>> /etc/sysconfig/puppet
Cela permettra d’appeler ce snippet dans le fichier
kickstart avec une ligne :
$SNIPPET(’puppet_name’)
et l’action contenue dans le fichier se réalisera
automagiquement.
11/23
Pour une administration sereine et détendue ± Back ± Forward
20. cobbler et Puppet
Utilisation
William Hoffmann
Distributions et profils
Programme
Détails techniques Maintenant que cobbler est configuré il faut "remplir" les
Introduction dépots :
cobbler
Importation d’une distribution :
Puppet
Démonstration
[admin@server1 ~] sudo /usr/bin/cobbler import --mirror
/mnt/isos --name RHEL-5.4-i386
Pour finir
Importation d’un dépôt externe ( EPEL )
[admin@server1 ~] sudo /usr/bin/cobbler repo add
--mirror=http://mirror.org --name EPEL-5-i386
[admin@server1 ~] sudo /usr/bin/cobbler reposync (long)
Importation d’un dépot externe à un profile :
[admin@server1 ~] sudo /usr/bin/cobbler profile edit
--name RHEL-5.4-i386 --repos EPEL-i386
12/23
Pour une administration sereine et détendue ± Back ± Forward
21. cobbler et Puppet
Utilisation
William Hoffmann
Systèmes
Programme
Détails techniques cobbler nous permet d’associer une adresse MAC, à une
Introduction adresse IP et un profil de distribution :
cobbler
[admin@server1 ~] sudo /usr/bin/cobbler system add
Puppet --name mail --ip 172.31.10.100 --mac BA:DC:0F:FE:00:01
Démonstration --profile RHEL-5.4-i386
Pour finir
Dans le cadre de cette démonstration, pour pouvoir
installer la machine virtuelle il faut lancer :
[user@laptop ~] sudo /usr/bin/virt-install -n mail
-r 512 --vcpus=1 --os-type=linux --os-variant=virtio26
-v --accelerate --pxe --disk path=/dev/VG00/LVmail
-w network=example -m BA:DC:0F:FE:00:01
Dans le cadre d’une utilisation avec des machines
physiques, il suffirait de démarrer la machine physique en
PXE.
13/23
Pour une administration sereine et détendue ± Back ± Forward
22. cobbler et Puppet
Utilisation
William Hoffmann
Buildiso
Programme
Détails techniques Pour les environnements sans dhcp ni PXE, la commande
Introduction buildiso est parfaite :
cobbler
[admin@server1 ~] sudo /usr/bin/cobbler buildiso --iso=boot.iso
Puppet - using/creating tempdir: /root/buildiso
Démonstration - building tree for isolinux
- copying miscellaneous files
Pour finir
- copying kernels and initrds - for profiles
skipping Xen distro: RHEL-5.4-xen-i386
- generating a isolinux.cfg
- generating profile list...
- done writing config
- running: mkisofs -quiet -o boot.iso -r -b
isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot
-boot-load-size 4 -boot-info-table -V cobbler Install -R -J -T
/root/buildiso
ISO build complete
You may wish to delete: /root/buildiso
The output file is: boot.iso
14/23
Pour une administration sereine et détendue ± Back ± Forward
23. cobbler et Puppet
Puppet
William Hoffmann
Architecture
Programme
Détails techniques Puppet suit un modèle client-serveur pour permettre
Introduction d’harmoniser les configuration de différents systèmes.
cobbler
C’est un système utilisant un langague déclaratif pour
Puppet
exprimer les configurations système. Nous avons donc :
Démonstration
Pour finir
Le puppetmaster : c’est le serveur distribuant les
configurations
Les clients (nodes ) qui représentent les sytèmes
gérés.
Une communication en xmlrpc via https pour
assurer la liaison entre les différents membres.
Les manifestes et recettes qui représentent les
éléments de configuration
15/23
Pour une administration sereine et détendue ± Back ± Forward
24. cobbler et Puppet
Puppet
William Hoffmann
Installation
Programme
Détails techniques L’installation de puppet est très simple, il suffit de faire
Introduction sur le serveur :
cobbler
[admin@server1 ~] sudo /usr/bin/yum -y install puppet-server
Puppet
Démonstration Sur les nodes il est possible d’installer puppet avec yum,
Pour finir mais il est plus simple d’ajouter le package puppet dans
la section %package d’un fichier kickstart.
16/23
Pour une administration sereine et détendue ± Back ± Forward
25. cobbler et Puppet
Puppet
William Hoffmann
Configuration du serveur
Programme
Détails techniques La configuration du serveur se fait dans le fichier
Introduction /etc/puppet/puppet.conf, mais aussi et surtout dans
cobbler
le fichier /etc/puppet/manifests/site.pp. Ce dernier
Puppet
est en fait un résumé de l’organisation du site de
Démonstration
production.
Pour finir
Listing 1 – Extrait du site.pp
node basenode {
include base_apps
$user_admin = "admin"
include sudo
include sshd_config
include motd
include admin_pubkey
$puppet_srv = "server1.example.com"
include mod_puppet_client
}
node default inherits basenode {}
17/23
Pour une administration sereine et détendue ± Back ± Forward
26. cobbler et Puppet
Puppet
William Hoffmann
Recettes
Programme
Détails techniques La configuration se fait au travers de recettes qui
Introduction utilisent des types, les différents types sont assez divers :
cobbler
Files qui supporte des paramètres comme : content,
Puppet
Démonstration
permissions, ownership. . .
Pour finir Packages
Services
Les fichiers peuvent se baser sur des modèles, être
téléchargés depuis une source externe ou depuis le
serveur puppet. La réunion de plusieurs types se fait au
travers de classes, par exemple la classe sudo est
composée d’un package et d’un fichier.
18/23
Pour une administration sereine et détendue ± Back ± Forward
27. cobbler et Puppet
Puppet
William Hoffmann
Example
Programme
Détails techniques
Introduction Listing 2 – La classe sudo
cobbler class sudo {
Puppet
package { "sudo":
Démonstration ensure => installed,
Pour finir }
file { "/etc/sudoers":
owner => "root",
group => "root",
mode => "440",
content => template("sudo/sudoers.erb"),
require => Package["sudo"],
}
}
19/23
Pour une administration sereine et détendue ± Back ± Forward
28. cobbler et Puppet
Puppet
William Hoffmann
Appel d’une classe
Programme
Détails techniques L’appel d’une classe se fait au travers du fichier
Introduction /etc/puppet/manifests/site.pp.
cobbler
Puppet Listing 3 – appel de la classe sudo
Démonstration node basenode {
Pour finir
$user_admin = "admin"
include sudo
Et dans le modèle :
Listing 4 – extrait d’un modèle
<%= user_admin %> ALL = NETWORKING, SOFTWARE,
SERVICES, STORAGE, DELEGATING, PROCESSES, LOCATE,
DRIVERS, DIVERS
20/23
Pour une administration sereine et détendue ± Back ± Forward
29. cobbler et Puppet
Puppet
William Hoffmann
Configuration d’un noeud
Programme
Détails techniques Pour configurer un noeud, il suffit de lui dire quel
Introduction "master" utiliser, cela se fait dans le fichier
cobbler
/etc/sysconfig/puppet
Puppet
server = server1.example.com
Démonstration
Pour finir Il est aussi possible de "demander" au noeud de reporter
les mises à jours avec le fichier
/etc/sysconfig/puppet/tagmail.conf
all = admin@example.com
21/23
Pour une administration sereine et détendue ± Back ± Forward
30. cobbler et Puppet
Démonstration
William Hoffmann
Programme
Détails techniques
Introduction
cobbler
Puppet
Démonstration
Pour finir
Installation avec cobbler
Configuration des noeuds
22/23
Pour une administration sereine et détendue ± Back ± Forward
31. cobbler et Puppet
Pour finir
William Hoffmann
Aller plus loin
Programme
Détails techniques Gérer plusieurs distributions avec cobbler
Introduction
Utiliser GIT pour gérer les manifestes de puppet
cobbler
Puppet
Utiliser les interfaces web de cobbler et puppet
Démonstration Explorer les wikis :
Pour finir https ://fedorahosted.org/cobbler/
http ://reductivelabs.com/trac/puppet
Func
http ://et.redhat.com
Merci
A
Made with LTEX
23/23
Pour une administration sereine et détendue ± Back