Puppet - Vagrant
Puppet - Vagrant
Votre mission
Code
1
2
Puppet - Vagrant
Développement
Code
WAR
Puppet - Vagrant
Déploiement
Puppet - Vagrant
L’infrastructure
Serveur App
Base de données
Monitoring
Load balancer
Recettes
Balancer
App1
App2
App3
BD...
Puppet - Vagrant
L’infrastructure vue du dev
Serveur App
Base de données
Recettes
VM - BDD
VM – App
VM Template
Ex: Centos...
Puppet - Vagrant
•Vagrant
Puppet - Vagrant
Cycle
Puppet - Vagrant
•TP
A vos claviers
Puppet - Vagrant
Objectifs
- Valider les installations
- Créer une VM from scratch
- Cycle de vie de la VM
https://github....
Puppet - Vagrant
Objectifs
- Idem avec la box de pour puppet
- https://github.com/smougenot/devops_puppet_worksho
p.git
 ...
Puppet - Vagrant
•Puppet
Puppet - Vagrant
•TP
A vos claviers
Puppet - Vagrant
Objectifs
- Lancer puppet en ‘standalone’
- Installer le PuppetMaster
Voir le fichier puppet/vm-centOS6-6...
Puppet - Vagrant
Puppet - Vagrant
PuppetMaster
Puppet - Vagrant
Puppet - Vagrant
•TP
A vos claviers
Puppet - Vagrant
Objectifs
- Lancer le client puppet
- Installer des modules depuis le PuppetMaster
 sudo –s
 puppet age...
Puppet - Vagrant
•Puppet le code
Pensez à lancer Geppetto
Puppet - Vagrant
Organisation
- Node
- Module
- Hiera
 ll /etc/puppet
Puppet - Vagrant
Node
- Identifier les machines
- Définir leur Rôle
 ll /etc/puppet/manifests/
Puppet - Vagrant
Node
node /^.*vpeint.*$/ inherits base{
# Role
class{ role::p2es::v3::inte::bo_pe: }
}
Puppet - Vagrant
Module
- Le code : fichier.pp
- Doc de rérérence
Nommage :
- [a-z][a-z0-9_]*
- Espace de nommage : role::...
Puppet - Vagrant
Code d’un module
- commun::ftp (ouvrir dans Geppetto)
- Ressources prédéfinies
Puppet - Vagrant
•TP
A vos claviers
Puppet - Vagrant
Objectifs
- Créer un module « workshop »
- Installer le package httpd,
- En faire un service lancé au dém...
Puppet - Vagrant
Objectifs
- Tester en local sans PuppetMaster
- puppet/vm-centOS6-64/README
/vagrant_puppet/hiera_test_d...
Puppet - Vagrant
Objectifs
- Ajouter un fichier accessible via http à l’aide d’un template
- Il affiche le hostname de la ...
Puppet - Vagrant
Organisation des modules
- Rôles (modules/role)
- rôle business de la machine (ex : bdd)
- Profiles (modu...
Puppet - Vagrant
Puppet - Vagrant
Code d’un module
- Allons voir
Puppet - Vagrant
•QCM
A vos cerveaux
Puppet - Vagrant
Dans la déclaration du node je vais?
- Définir l’environnement (dev, inté, …)
- Référencer un unique rôle...
Puppet - Vagrant
La déclaration des nodes?
- Est dans un fichier du répertoire manifests
- Est dans un fichier configuré p...
Puppet - Vagrant
L’héritage est possible pour ?
- Node
- Role
- Profile
- Module




Puppet - Vagrant
Une application a besoin d’un nouveau package.
Quel type de contenu Puppet est impacté?
- Node
- Role
- P...
Puppet - Vagrant
Je peux rendre ma classe (module) paramétrable si elle est
de type?
- Node
- Role
- Profile
- Module


Puppet - Vagrant
•Puppet Hiera
Puppet - Vagrant
Hiera
- Paramétrage / configuration
- Des fichiers yaml
- Organisés par environnement
Puppet - Vagrant
Node
- Identifier les machines
- Définir leur Rôle
+---integration
¦ +---dict-v6
¦ +---gendoc
¦ +---map
¦...
Puppet - Vagrant
Node
- Identifier les machines
- Définir leur Rôle
Hierarchie : hiera.yaml
ls -1 integration/dict-v6
comm...
Puppet - Vagrant
Utilisation
- Dans les profiles
- Sans valeur par défaut
profile::p2es::v3::pe
configuration.yaml
$DATASR...
Puppet - Vagrant
•TP
A vos claviers
Puppet - Vagrant
Objectifs
- Dans la page info faire afficher un texte paramétré qui
dépend de l’environnement
- Paramétre...
Puppet - Vagrant
•Processus
Puppet - Vagrant
Coder
- Une branche par environnement
- Chaque branche à toute la config / tous les rôles
- Ex: ajout d’u...
Puppet - Vagrant
•Processus
Modules
Profiles
Configuration
NodesRôles
Merge
Merci
49
Prochain SlideShare
Chargement dans…5
×

Mixit2014_Puppet_Workshop

895 vues

Publié le

Support de l'atelier Devops de mixit2014 sur Puppet

Publié dans : Logiciels
0 commentaire
1 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
895
Sur SlideShare
0
Issues des intégrations
0
Intégrations
10
Actions
Partages
0
Téléchargements
21
Commentaires
0
J’aime
1
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Mixit2014_Puppet_Workshop

  1. 1. Puppet - Vagrant
  2. 2. Puppet - Vagrant Votre mission Code 1 2
  3. 3. Puppet - Vagrant Développement Code WAR
  4. 4. Puppet - Vagrant Déploiement
  5. 5. Puppet - Vagrant L’infrastructure Serveur App Base de données Monitoring Load balancer Recettes Balancer App1 App2 App3 BDD1 BDD2 Monitoring ?spare?
  6. 6. Puppet - Vagrant L’infrastructure vue du dev Serveur App Base de données Recettes VM - BDD VM – App VM Template Ex: Centos Dev Vagrant Virtual Box
  7. 7. Puppet - Vagrant •Vagrant
  8. 8. Puppet - Vagrant Cycle
  9. 9. Puppet - Vagrant •TP A vos claviers
  10. 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. 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)
  12. 12. Puppet - Vagrant •Puppet
  13. 13. Puppet - Vagrant •TP A vos claviers
  14. 14. Puppet - Vagrant Objectifs - Lancer puppet en ‘standalone’ - Installer le PuppetMaster Voir le fichier puppet/vm-centOS6-64/README  sudo –s  service puppetmaster status  puppet apply --modulepath=… -dv -e "include puppet::master_install"  service puppetmaster status
  15. 15. Puppet - Vagrant
  16. 16. Puppet - Vagrant PuppetMaster
  17. 17. Puppet - Vagrant
  18. 18. Puppet - Vagrant •TP A vos claviers
  19. 19. Puppet - Vagrant Objectifs - Lancer le client puppet - Installer des modules depuis le PuppetMaster  sudo –s  puppet agent –tdv --noop  hostname vworkshopint_ZZZ  puppet agent -tdv
  20. 20. Puppet - Vagrant •Puppet le code Pensez à lancer Geppetto
  21. 21. Puppet - Vagrant Organisation - Node - Module - Hiera  ll /etc/puppet
  22. 22. Puppet - Vagrant Node - Identifier les machines - Définir leur Rôle  ll /etc/puppet/manifests/
  23. 23. Puppet - Vagrant Node node /^.*vpeint.*$/ inherits base{ # Role class{ role::p2es::v3::inte::bo_pe: } }
  24. 24. Puppet - Vagrant Module - Le code : fichier.pp - Doc de rérérence Nommage : - [a-z][a-z0-9_]* - Espace de nommage : role::p2es::v3::inte::bo_pe - Répertoires : - role:: => modules/role/init.pp - role::p2es::v3::inte::bo_pe => modules/role/manifests/p2es/v3/inte/bo_pe.pp
  25. 25. Puppet - Vagrant Code d’un module - commun::ftp (ouvrir dans Geppetto) - Ressources prédéfinies
  26. 26. Puppet - Vagrant •TP A vos claviers
  27. 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. 28. Puppet - Vagrant Objectifs - Tester en local sans PuppetMaster - puppet/vm-centOS6-64/README /vagrant_puppet/hiera_test_deploy.sh puppet apply --modulepath= …
  29. 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. 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; …
  31. 31. Puppet - Vagrant
  32. 32. Puppet - Vagrant Code d’un module - Allons voir
  33. 33. Puppet - Vagrant •QCM A vos cerveaux
  34. 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. 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   
  36. 36. Puppet - Vagrant L’héritage est possible pour ? - Node - Role - Profile - Module    
  37. 37. Puppet - Vagrant Une application a besoin d’un nouveau package. Quel type de contenu Puppet est impacté? - Node - Role - Profile - Module - Hiera    
  38. 38. Puppet - Vagrant Je peux rendre ma classe (module) paramétrable si elle est de type? - Node - Role - Profile - Module  
  39. 39. Puppet - Vagrant •Puppet Hiera
  40. 40. Puppet - Vagrant Hiera - Paramétrage / configuration - Des fichiers yaml - Organisés par environnement
  41. 41. Puppet - Vagrant Node - Identifier les machines - Définir leur Rôle +---integration ¦ +---dict-v6 ¦ +---gendoc ¦ +---map ¦ +---mongo ¦ +---octopus ¦ +---p2es ¦ +---sa ¦ +---v6 +---production ¦ +---dict-v6 ¦ +---gendoc ¦ +---map ¦ +---mongo ¦ +---octopus ¦ +---p2es ¦ +---sa ¦ +---v6 ...
  42. 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. 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'
  44. 44. Puppet - Vagrant •TP A vos claviers
  45. 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
  46. 46. Puppet - Vagrant •Processus
  47. 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é
  48. 48. Puppet - Vagrant •Processus Modules Profiles Configuration NodesRôles Merge
  49. 49. Merci 49

×