Académique Documents
Professionnel Documents
Culture Documents
Explications
Description des machines et modules
Le dépôt Git de Puppet est découpé en quatre parties :
Le dossier modules contient les différentes classes utilisées pour déployer des
éléments sur les machines ;
Le fichier Puppetfile contient la liste des modules proposés à la communauté
dont nous avons besoin ;
Le dossier data contient la description de chaque machine et chaque groupe en
fonction d’une arborescence définie dans le fichier hiera.yaml ;
Le dossier manifests contient un fichier site.pp afin de faire le mapping entre
le dossier data et modules.
Dossier modules
Contient les modules “maison”, sur le serveur Puppet, les modules présents dans
Puppetfile sont téléchargés et ajoutés dans ce dossier ;
Les classes sont des ensembles d’actions à effectuer lorsqu’elles sont incluses ;
Les classes peuvent avoir des paramètres et des valeurs par défaut ;
Exemple :
Une donnée écrite au niveau noeud sera prioritaire sur celle du groupe et de l’OS.
Arborescence de data - Exemple de fichier 1
--- # data/groups/rproxy-prod/group.yaml Configuration de la fusion sur la clé
lookup_options:
apache_config: apache_config
merge: deep
classes:
Import de 2 classes du module
- apache_config::rproxy apache_config
- apache_config::vhost::autoconf
apache_config::mods::mpm_event::start_servers
: 8
apache_config::mods::mpm_event::max_request_workers
: 800
apache_config::mods::mpm_event::min_spare_threads
: 75
apache_config::mods::mpm_event::max_spare_threads
: 250
apache_config::mods::mpm_event::thread_per_childs
: 50
[...]
Arborescence de data - Exemple de fichier 2
--- # data/groups/rproxy-prod/group.yaml [...]
[...]
mon_module::mon_parametre: valeur
mon_module::ma_sous_classe::mon_parametre: valeur
class apache_config (
$default_charset = undef, apache_config:: default_charset: null
$other_vhost_access_log = true, apache_config:: other_vhost_access_log: true
$server_tokens = 'OS', apache_config:: server_tokens: Prod
$server_signature = 'On', apache_config:: server_signature: Off
$trace_enable = 'Off', apache_config:: trace_enable: Off
)
Pour chiffrer un mot de passe (le mot de passe sera demandé pendant l’exécution) :
/opt/puppetlabs/puppet/bin/eyaml encrypt -o string -p
# Ajouter ce morceau
ssh_authorized_key { 'Prénom Nom' :
user => 'root',
key => 'CLÉ SSH' ,
type => 'TYPE CLÉ' ,
}
# Exemple :
# ssh-ed25519 AAAA[...]00 david.cachau@capsi-informatique.fr
# ^- TYPE CLÉ ^- CLÉ SSH
profiles::mysql::users :
"mon_user@%" :
grants:
"ma_bdd.*":
privileges :
- ALL
packages :
- name: ca-certificates
- name: ca-certificates-java
- name: openjdk-11-jdk-headless
# Dans cet exemple, nous installons 3 paquets via le gestionnaire de dépôt du système
# (APT sur Debian)
Je ne comprends pas ?
david.cachau@capsi-informatique.fr
06.45.97.91.31
Je répondrais à vos questions et vous aiderais à faire vos modifications.