10. Puppet - Vagrant
Objectifs
- Valider les installations
- Créer une VM from scratch
- Cycle de vie de la VM
https://github.com/smougenot/devops_puppet_workshop
vagrant
vagrant box list
vagrant init centos-6.x...box
vagrant up
vagrant ssh
vagrant destroy -f
11. Puppet - Vagrant
Objectifs
- Idem avec la box de pour puppet
- https://github.com/smougenot/devops_puppet_worksho
p.git
git clone
https://github.com/smougenot/devops_puppet_wo
rkshop.git
vagrant ???
Comment tout faire d’un coup
(vm propre & ssh)
27. Puppet - Vagrant
Objectifs
- Créer un module « workshop »
- Installer le package httpd,
- En faire un service lancé au démarrage
- Ajouter un fichier accessible via http (/var/www/html)
package { 'TTT':
service { 'TTT':
file { 'TTT':
28. Puppet - Vagrant
Objectifs
- Tester en local sans PuppetMaster
- puppet/vm-centOS6-64/README
/vagrant_puppet/hiera_test_deploy.sh
puppet apply --modulepath= …
29. Puppet - Vagrant
Objectifs
- Ajouter un fichier accessible via http à l’aide d’un template
- Il affiche le hostname de la machine et son adresse IP
- Puppet/VM/centOS6-64/README
file { 'TTT':
30. Puppet - Vagrant
Organisation des modules
- Rôles (modules/role)
- rôle business de la machine (ex : bdd)
- Profiles (modules/profile)
- Installation et paramétrage d’un applicatif (ex: postgresql)
- Modules (modules/*)
- Segmentation des éléments
- Installer
- Configurer
- …
- Ressources
- Brique de base
- File, User, Package (yum), Perso; …
34. Puppet - Vagrant
Dans la déclaration du node je vais?
- Définir l’environnement (dev, inté, …)
- Référencer un unique rôle
- Référencer un ou plusieurs profiles
- Référencer un ou plusieurs modules
35. Puppet - Vagrant
La déclaration des nodes?
- Est dans un fichier du répertoire manifests
- Est dans un fichier configuré par manifests/site.pp
- Contient une seule déclaration par fichier
- Référence un rôle
- Référence une combinaison de rôles
37. Puppet - Vagrant
Une application a besoin d’un nouveau package.
Quel type de contenu Puppet est impacté?
- Node
- Role
- Profile
- Module
- Hiera
38. Puppet - Vagrant
Je peux rendre ma classe (module) paramétrable si elle est
de type?
- Node
- Role
- Profile
- Module
42. Puppet - Vagrant
Node
- Identifier les machines
- Définir leur Rôle
Hierarchie : hiera.yaml
ls -1 integration/dict-v6
common.yaml
configuration.yaml
password.yaml
vTcReferencement2.yaml
vTcReferencementPreprod2.yaml
...
:hierarchy:
- %{::fqdn}
- configuration
- password
- common
:yaml:
:datadir: '/etc/puppet/hieradata/%{::environment}/%{projet}’
43. Puppet - Vagrant
Utilisation
- Dans les profiles
- Sans valeur par défaut
profile::p2es::v3::pe
configuration.yaml
$DATASRC_HOST = hiera('bdd_pe_host')
$DATASRC_LOGIN = hiera('bdd_pe_login')
$DATASRC_PASSWORD = hiera('bdd_pe_password')
# Base de données de PE, host
bdd_pe_host : 'pgp2es'
45. Puppet - Vagrant
Objectifs
- Dans la page info faire afficher un texte paramétré qui
dépend de l’environnement
- Paramétrer le module
- Créer le profile
- Ajouter le paramétrage dans hiera
- Ajouter le paramétrage pour un autre environnement
47. Puppet - Vagrant
Coder
- Une branche par environnement
- Chaque branche à toute la config / tous les rôles
- Ex: ajout d’un nouveau paramétrage
- Merge entre branche à la demande (livraison)
- Un tag c’est bien aussi
- Seul les Sys peuvent modifier la config hors inté