presentation du gestionnaire de configuration puppet
TRANSCRIPT
1 Présentation PuppetPrésentation Puppet & démo technique
2 PuppetQu'est-ce que c'est ? A quoi ça sert ?
Système de gestion centralisée des configurations (SCM)• Chef• CFEngine• Puppet• Salt• Ansible• …
→ Résoud les problèmes d'administration systèmes de grands parcs• Tâches répétitives• Supervision de l'état du parc• Audit• etc.
3 PuppetQu'est-ce que c'est ? A quoi ça sert ?
Méthodes possibles d'administration de grands parcs• Manuellement → long et source d'erreurs humaines• Boucle SSH (script)
→ Long!→ Comment vérifier les résultats ?→ Reprise sur erreur→ Pré-requis: s'assurer que tous les systèmes sont iso (ou s'assurer que
tous les cas de figure sont gérés)• Update.sh (script au boot ou par cron/scheduler)
→ comment s'assurer que tous les noeuds ont bien exécuté le script ?→ mêmes problèmes→ comment distinguer les noeuds ?
• Agent→ Puppet→ Intrusif (Ruby)
4 Déclaratif vs. impératifLes concepts principaux
5 Avantages du déclaratifLes concepts principaux
Avantages du déclaratif
• On décrit l'état voulu, pas ce qu'il faut faire pour y arriver
• Rapide, tout le parc applique les règles en parallèle
• Pas de vérification des résultats. Un noeud est soit dans l'état désiré, soit pas
• Pas de reprise sur erreur. Il faut simplement investiguer pourquoi un noeud ne tend pas vers l'état désiré
• Pas de nécessité de s'assurer que les noeuds sont dans un certain état initial→ Le même code déclaratif amène vers l'état désiré un noeud vierge ou un
noeud presque dans l'état désiré
• Le code déclaratif a accès aux caractéristiques des noeuds→ Il est très facile de distinguer les noeuds
6 Avantages de PuppetArchitecture
Avantages de Puppet
• Gestion centralisée, interfaces de gestion permettant de voir l'état du parc
• Inventaire→ facter récupère
automatiquement de façon centralisée toute valeur intéressante
→ PuppetDB
7 Avantages du langage PuppetLes concepts principaux
Avantages du langage
• Graphe de dépendences
• Idempotence
• Modules (https://forge.puppet.com/)→ réutilisation de code→ exemple mysql::db
• Cross-platform
Exemple 1
group { 'web':ensure => present,gid => 502,
}
user { 'john':ensure => present,gid => “web”,groups => [“adm”, “staff”],shell => “/bin/bash”,require => Group['web'],
}
Exemple 2
package { 'htop':ensure => present,
}
i
8 Puppetpuppet.clevernetsystems.com
Démo Puppet15 minutes
Technologies :
9 Infrastructure As CodeEnvironnements et versioning
Versioning du code
• Environnements (dev, valid, prod, windows, linux, mac, etc.)
• Utilisation de Subversion ou Git pour versionner le code→ Audit (qui a modifié quoi à quel moment)→ Risque et compliance→ Possibilité de retour en arrière→ Multi-utilisateurs→ Branches