Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
elearning:workbooks:debian:6:avance:l129:part1 [2020/08/15 15:12] adminelearning:workbooks:debian:6:avance:l129:part1 [2022/06/20 17:07] (Version actuelle) admin
Ligne 1: Ligne 1:
 ~~PDF:LANDSCAPE~~ ~~PDF:LANDSCAPE~~
  
-Version : **2020.01**+Version : **2022.01**
  
 Dernière mise-à-jour : ~~LASTMOD~~ Dernière mise-à-jour : ~~LASTMOD~~
Ligne 9: Ligne 9:
 =====Contenu du Module===== =====Contenu du Module=====
  
-    * **DOF401 - Puppet en Mode Sans Maître** +  * **DOF401 - Puppet en Mode Sans Maître** 
-      * Contenu du Module +    * Contenu du Module 
-      * Qu'est-ce Puppet ? +    * Qu'est-ce Puppet ? 
-      * Démarrer avec Puppet +    * Démarrer avec Puppet 
-        * LAB #1 - Installation +      * Utiliser des Manifests 
-        * Installer Git +        * LAB #- Gestion des Fichiers 
-          * Sous Debian/Ubuntu +          * 1.1 - Modification d'un Fichier Existant sur le Serveur 
-          * Sous Windows +          * 1.2 - Effectuer un Dry Run avec Puppet 
-        * Installer VirtualBox +        * LAB #- Gestion des Paquets 
-        * Installer Vagrant +        * LAB #- Gestion des Services
-        * Installer la Machine Virtuelle Puppet +
-          * Sous Debian/Ubuntu +
-          * Sous Windows +
-        * Se connecter à la Machine Virtuelle Puppet +
-          * Sous Debian/Ubuntu +
-          * Sous Windows +
-      * Utiliser des manifests +
-        * LAB #- Gestion des Fichiers +
-          * Modification d'un Fichier Existant sur le Serveur +
-          * Effectuer un Dry Run avec Puppet +
-        * LAB #- Gestion des Paquets +
-        * LAB #- Gestion des Services+
       * Gérer du code Puppet avec Git       * Gérer du code Puppet avec Git
-        * LAB #- Créer un Repository Local +        * LAB #- Créer un Repository Local 
-          * Les Branches avec Git +          * 4.1 - Les Branches avec Git 
-        * LAB #- Créer un Repository Distant +        * LAB #- Créer un Repository Distant 
-        * LAB #- Cloner un Repository +        * LAB #- Cloner un Repository 
-        * LAB #- Appliquer des Modifications Automatiquement +        * LAB #- Appliquer des Modifications Automatiquement 
-        * LAB #- Mise en Place sur un Nœud+        * LAB #- Mise en Place sur un Nœud
  
 =====Qu'est-ce Puppet ?===== =====Qu'est-ce Puppet ?=====
Ligne 106: Ligne 94:
     * un nœud est dédié à l'exécution de Puppet et tous les autres nœuds doivent le contacter pour connaître la configuration à appliquer.     * un nœud est dédié à l'exécution de Puppet et tous les autres nœuds doivent le contacter pour connaître la configuration à appliquer.
  
-<WRAP center round important 50%>+<WRAP center round important>
 **Important** - Ce cours commence avec l'utilisation de Puppet en mode **Sans Maître** en utilisant Git et termine avec l'étude de l'architecture Agent/Maître. **Important** - Ce cours commence avec l'utilisation de Puppet en mode **Sans Maître** en utilisant Git et termine avec l'étude de l'architecture Agent/Maître.
 </WRAP> </WRAP>
  
-====LAB #1 - Installation==== +Commencez en vous connectant à la machine virtuelle debian10 à partir d'un terminal de votre gateway :
- +
-===Installer Git=== +
- +
-Si ce n'est pas déjà fait, commencez par créer votre compte sur GitHub **[[https://github.com/]]**. +
- +
-Si ce n'est pas déjà fait, naviguez à l'URL **[[https://git-scm.com/download]]** et suivez les instructions pour installer Git sur votre système d'exploitation. +
- +
-Clonez ensuite les fichiers pour ce cours : +
- +
-==Sous Debian/Ubuntu==+
  
 <code> <code>
-trainee@puppet:~$ git clone https://github.com/bitfield/puppet-beginners-guide-3.git +trainee@traineeXX:~$ ssh -l trainee 10.0.2.70
-Clonage dans 'puppet-beginners-guide-3'... +
-remote: Counting objects: 854, done. +
-remote: Total 854 (delta 0), reused 0 (delta 0), pack-reused 854 +
-Réception d'objets: 100% (854/854), 98.47 KiB | 320.00 KiB/s, fait. +
-Résolution des deltas: 100% (443/443), fait.+
 </code> </code>
  
-==Sous Windows==+Les noms d'utilisateurs et les mots de passe sont :
  
-<code> +^ Utilisateur ^ Mot de Passe ^ 
-C:\Users\trainee>git clone https://github.com/bitfield/puppet-beginners-guide-3.git +trainee | trainee | 
-Cloning into 'puppet-beginners-guide-3'... +root | fenestros |
-remote: Counting objects: 854, done. +
-remote: Total 854 (delta 0), reused 0 (delta 0), pack-reused 854R +
-Receiving objects: 100% (854/854), 98.47 KiB 202.00 KiB/s, done. +
-Resolving deltas: 100% (443/443), done. +
-</code> +
- +
-===Installer VirtualBox=== +
- +
-Si ce n'est pas déjà fait, naviguez à l'URL **[[https://www.virtualbox.org/wiki/Downloads]]** et suivez les instructions pour installer VirtualBox sur votre système d'exploitation. +
- +
-===Installer Vagrant=== +
- +
-Si ce n'est pas déjà fait, naviguez à l'URL **[[https://www.vagrantup.com/downloads.html]]** et suivez les instructions pour installer Vagrant sur votre système d'exploitation. +
- +
-===Installer la Machine Virtuelle Puppet===+
  
-==Sous Debian/Ubuntu==+Démarrez maintenant votre environnement de travail Puppet :
  
 <code> <code>
-trainee@puppet:~$ cd puppet-beginners-guide-3 +trainee@debian10:~/puppet-beginners-guide-3$ vagrant up
-trainee@puppet:~/puppet-beginners-guide-3$ scripts/start_vagrant.sh+
 </code> </code>
  
-==Sous Windows==+====Utiliser des Manifests====
  
-Ajoutez le chemin **C:\Program Files\Git\bin** à votre PATH et au PATH système. +Re-démarrez votre environnement Puppet :
- +
-Par exemple, sous Windows(tm) 10 : +
- +
-<file> +
-Panneau de configuration > Système et sécurité > Système > Modifier les paramètres > Paramètres système avancés > Variables d'environnement > Path > Modifier (Pour votre utilisateur ET le système) > Nouveau > C:\Program Files\Git\bin > OK > OK > OK +
-</file> +
- +
-Exécutez **cmd** et saisissez les commandes suivantes : +
- +
-<code>cd puppet-beginners-guide-3 +
-Microsoft Windows [version 10.0.16299.431] +
-(c) 2017 Microsoft Corporation. Tous droits réservés. +
- +
-C:\Users\trainee>cd puppet-beginners-guide-3 +
- +
-C:\Users\trainee\puppet-beginners-guide-3>cd scripts +
- +
-C:\Users\trainee\puppet-beginners-guide-3\scripts>start_vagrant.sh +
- +
-C:\Users\trainee\puppet-beginners-guide-3\scripts> +
-</code> +
- +
-**Git bash** sera lancé pour exécuter le script. +
- +
-===Se connecter à la Machine Virtuelle Puppet=== +
- +
-A l'issue du processus d'installation, vous obtiendrez :+
  
 <code> <code>
-... +trainee@debian10:~/puppet-beginners-guide-3$ vagrant reload
-    defaultThe `minitar` executable is no longer bundled with `minitar`. If you are +
-    default: expecting this executable, make sure you also install `minitar-cli`. +
-    default: Successfully installed minitar-0.6.1 +
-    default: Successfully installed puppet_forge-2.2.9 +
-    default: Successfully installed r10k-2.6.2 +
-    default: 10 gems installed+
 </code> </code>
  
-Connectez-vous à la machine virtuelle en utilisant la commande **vagrant ssh** :+===LAB #1 Gestion des Fichiers===
  
-==Sous Debian/Ubuntu==+Connectez-vous à votre environnement de travail Puppet et créez le fichier **file_hello.pp** :
  
 <code> <code>
-hnorris@Laptop:~/puppet-beginners-guide-3$ vagrant ssh +trainee@debian10:~/puppet-beginners-guide-3$ vagrant ssh 
-Welcome to Ubuntu 16.04.LTS (GNU/Linux 4.4.0-173-generic x86_64)+Welcome to Ubuntu 16.04.LTS (GNU/Linux 4.4.0-210-generic x86_64)
  
  * Documentation:  https://help.ubuntu.com  * Documentation:  https://help.ubuntu.com
Ligne 212: Ligne 136:
  * Support:        https://ubuntu.com/advantage  * Support:        https://ubuntu.com/advantage
  
 +34 packages can be updated.
 +12 of these updates are security updates.
 +To see these additional updates run: apt list --upgradable
  
-7 packages can be updated. +New release '18.04.LTS' available.
-7 updates are security updates. +
- +
-New release '18.04.LTS' available.+
 Run 'do-release-upgrade' to upgrade to it. Run 'do-release-upgrade' to upgrade to it.
  
  
 +Last login: Thu Apr 29 10:16:09 2021 from 10.0.2.2
 vagrant@ubuntu-xenial:~$  vagrant@ubuntu-xenial:~$ 
-</code> 
  
-Vérifiez que Puppet a bien été installé : 
- 
-<code> 
-vagrant@ubuntu-xenial:~$ puppet --version 
-6.12.0 
-vagrant@ubuntu-xenial:~$ exit 
-logout 
-Connection to 127.0.0.1 closed. 
-</code> 
- 
-==Sous Windows== 
- 
-<code> 
-C:\Users\trainee\puppet-beginners-guide-3\scripts>vagrant ssh 
-Welcome to Ubuntu 16.04.4 LTS (GNU/Linux 4.4.0-127-generic x86_64) 
- 
- * Documentation:  https://help.ubuntu.com 
- * Management:     https://landscape.canonical.com 
- * Support:        https://ubuntu.com/advantage 
- 
-  Get cloud support with Ubuntu Advantage Cloud Guest: 
-    http://www.ubuntu.com/business/services/cloud 
- 
-0 packages can be updated. 
-0 updates are security updates. 
- 
- 
-vagrant@ubuntu-xenial:~$ 
-</code> 
- 
-Vérifiez que Puppet a bien été installé : 
- 
-<code> 
-vagrant@ubuntu-xenial:~$ puppet --version 
-6.12.0 
-vagrant@ubuntu-xenial:~$ exit 
-logout 
-Connection to 127.0.0.1 closed. 
- 
-C:\Users\trainee\puppet-beginners-guide-3\scripts> 
-</code> 
- 
-=====Utiliser des mainifests===== 
- 
-====LAB #2 - Gestion des Fichiers==== 
- 
-Re-connectez-vous à votre machine virtuelle et créez le fichier **file_hello.pp** : 
- 
-<code> 
-hnorris@Laptop:~/puppet-beginners-guide-3$ vagrant ssh 
-Welcome to Ubuntu 16.04.6 LTS (GNU/Linux 4.4.0-173-generic x86_64) 
- 
- * Documentation:  https://help.ubuntu.com 
- * Management:     https://landscape.canonical.com 
- * Support:        https://ubuntu.com/advantage 
- 
- 
-7 packages can be updated. 
-7 updates are security updates. 
- 
-New release '18.04.3 LTS' available. 
-Run 'do-release-upgrade' to upgrade to it. 
- 
- 
-Last login: Tue Feb 11 08:32:56 2020 from 10.0.2.2 
 vagrant@ubuntu-xenial:~$ vi file_hello.pp vagrant@ubuntu-xenial:~$ vi file_hello.pp
-vagrant@ubuntu-xenial:~$ cat file_hello.pp  
-file { '/tmp/hello.txt': 
-  ensure  => file, 
-  content => "hello, world\n", 
- 
-</code> 
- 
-<code> 
-C:\Users\trainee\puppet-beginners-guide-3\scripts>vagrant ssh 
-Welcome to Ubuntu 16.04.4 LTS (GNU/Linux 4.4.0-127-generic x86_64) 
- 
- * Documentation:  https://help.ubuntu.com 
- * Management:     https://landscape.canonical.com 
- * Support:        https://ubuntu.com/advantage 
- 
-  Get cloud support with Ubuntu Advantage Cloud Guest: 
-    http://www.ubuntu.com/business/services/cloud 
- 
-7 packages can be updated. 
-7 updates are security updates. 
- 
-New release '18.04.3 LTS' available. 
-Run 'do-release-upgrade' to upgrade to it. 
- 
- 
-Last login: Sat May 26 12:25:41 2018 from 10.0.2.2 
- 
-vagrant@ubuntu-xenial:~$ sudo vi file_hello.pp 
 vagrant@ubuntu-xenial:~$ cat file_hello.pp  vagrant@ubuntu-xenial:~$ cat file_hello.pp 
 file { '/tmp/hello.txt': file { '/tmp/hello.txt':
Ligne 343: Ligne 174:
   * etc ...   * etc ...
  
-<WRAP center round important 50%>+<WRAP center round important>
 **Important** - Bien que les attributs soient différents selon le type de ressource, l'attribut **ensure** est commun à toutes les ressources. Par contre, la valeur de cet attribut diffère selon le type de ressource. Dans le cas de notre code, il est stipulé un fichier et non un répertoire ou un liens symbolique. **Important** - Bien que les attributs soient différents selon le type de ressource, l'attribut **ensure** est commun à toutes les ressources. Par contre, la valeur de cet attribut diffère selon le type de ressource. Dans le cas de notre code, il est stipulé un fichier et non un répertoire ou un liens symbolique.
 </WRAP> </WRAP>
Ligne 373: Ligne 204:
 </code> </code>
  
-===Modification d'un Fichier Existant sur le Serveur===+==1.1 - Modification d'un Fichier Existant sur le Serveur==
  
 Dans le cas où le fichier existe déjà et son contenu est différent, Puppet écrasera son contenu avec celui du manifest : Dans le cas où le fichier existe déjà et son contenu est différent, Puppet écrasera son contenu avec celui du manifest :
Ligne 389: Ligne 220:
 </code>  </code> 
  
-<WRAP center round important 50%>+<WRAP center round important>
 **Important** - Des modifications manuelles faites donc à un fichier géré par Puppet seront perdues la prochaine fois que Puppet s'exécute, sauf dans le cas où le manifest reflète les mêmes modifications. Pour cette raison, il est une bonne pratique d'insérer un commentaire en début de fichier comme avertissement. **Important** - Des modifications manuelles faites donc à un fichier géré par Puppet seront perdues la prochaine fois que Puppet s'exécute, sauf dans le cas où le manifest reflète les mêmes modifications. Pour cette raison, il est une bonne pratique d'insérer un commentaire en début de fichier comme avertissement.
 </WRAP> </WRAP>
  
-===Effectuer un Dry Run avec Puppet===+==1.2 - Effectuer un Dry Run avec Puppet==
  
 Il est possible de demander à Puppet, grâce à l'utilisation de l'option **--noop**, de nous informer des modifications qu'il aurait fait en appliquant un manifest, sans que ces modifications soient réellement effectuées : Il est possible de demander à Puppet, grâce à l'utilisation de l'option **--noop**, de nous informer des modifications qu'il aurait fait en appliquant un manifest, sans que ces modifications soient réellement effectuées :
Ligne 429: Ligne 260:
 </code> </code>
  
-====LAB #- Gestion des Paquets====+===LAB #- Gestion des Paquets===
  
 Puppet est capable de gérer les paquets grâce à la ressource **package**. Dans le manifest nous trouvons donc cette ressource, le nom du paquet ainsi que l'attribut **ensure** :  Puppet est capable de gérer les paquets grâce à la ressource **package**. Dans le manifest nous trouvons donc cette ressource, le nom du paquet ainsi que l'attribut **ensure** : 
Ligne 451: Ligne 282:
 </code> </code>
  
-<WRAP center round important 50%>+<WRAP center round important>
 **Important** - Le titre de la ressource de type paquet est **cowsay**. **Important** - Le titre de la ressource de type paquet est **cowsay**.
 </WRAP> </WRAP>
Ligne 576: Ligne 407:
 Si vous modifiez ce manifest, lors de l'enregistrement du fichier, Puppet appliquera les modifications. Si vous modifiez ce manifest, lors de l'enregistrement du fichier, Puppet appliquera les modifications.
  
-====LAB #- Gestion des Services====+===LAB #- Gestion des Services===
  
 Le manifest pour la gestion d'un service contient la ressource **service**. Créez le fichier suivant : Le manifest pour la gestion d'un service contient la ressource **service**. Créez le fichier suivant :
Ligne 839: Ligne 670:
 </code> </code>
  
-=====Gérer du code Puppet avec Git=====+====Gérer du code Puppet avec Git====
  
 Git est : Git est :
Ligne 847: Ligne 678:
   * distribué selon les termes de la licence publique générale GNU version 2.    * distribué selon les termes de la licence publique générale GNU version 2. 
  
-Quand le code d'un projet est modifié par un développeur, celui-ci procède à un **commit** pour rendre le code disponible aux autres. Un commit est un **snapshot** ou instantanée du repo qui est gardé pour toujours ce qui implique la possibilité de **rollbacks**.+Quand le code d'un projet est modifié par un développeur, celui-ci procède à un **commit** pour rendre le code disponible aux autres. Un commit est un **snapshot** ou instantanée du repository qui est gardé pour toujours ce qui implique la possibilité de **rollbacks**.
  
-<WRAP center round important 50%>+<WRAP center round important>
 **Important** - Pour apprendre comment écrire un message de commit Git, consultez ce lien : **[[https://chris.beams.io/posts/git-commit]]** (en anglais). **Important** - Pour apprendre comment écrire un message de commit Git, consultez ce lien : **[[https://chris.beams.io/posts/git-commit]]** (en anglais).
 </WRAP> </WRAP>
  
-====LAB #- Créer un Repository Local====+Commencez par : 
 + 
 +  * créez votre compte sur **[[https://github.com]]**, 
 +  * puis créez votre **Personal Access Token**. 
 + 
 +Copiez le Personal Access Token car vous en aurez besoin par la suite. 
 + 
 +===LAB #- Créer un Repository Local===
  
 Un jeu de fichiers sous Git est appelé un **repository** ou simplement un **repo**. Pour créer un repo local pour puppet, utilisez les commandes suivantes : Un jeu de fichiers sous Git est appelé un **repository** ou simplement un **repo**. Pour créer un repo local pour puppet, utilisez les commandes suivantes :
Ligne 865: Ligne 703:
 </code> </code>
  
-Git a besoin de savoir qui vous êtes. Saisissez donc les commandes suivantes en remplaçant les coordonnées d'identification avec les vôtres :+Git a besoin de savoir qui vous êtes. Saisissez donc les commandes suivantes en remplaçant les coordonnées d'identification avec celles que vous avez utilisé lors de la création de votre compte sur GitHub :
  
 <code> <code>
Ligne 930: Ligne 768:
 </code> </code>
  
-===Les Branches avec Git===+==4.1 - Les Branches avec Git==
  
 Une Branche sous Git est une copie parallèle du code où les modifications sont indépendantes. Ces modification peuvent ensuite être fusionner avec la Branche Maître. Ceci permet : Une Branche sous Git est une copie parallèle du code où les modifications sont indépendantes. Ces modification peuvent ensuite être fusionner avec la Branche Maître. Ceci permet :
Ligne 939: Ligne 777:
 Vous pouvez trouver d'avantage d'informations concernant les Branches de Git à cet URL **[[https://git-scm.com/book/fr/v1/Les-branches-avec-Git-Brancher-et-fusionner%C2%A0%3A-les-bases]]** ainsi que l'ebook gratuit ici - **[[https://git-scm.com/book/fr/v2]]**. Vous pouvez trouver d'avantage d'informations concernant les Branches de Git à cet URL **[[https://git-scm.com/book/fr/v1/Les-branches-avec-Git-Brancher-et-fusionner%C2%A0%3A-les-bases]]** ainsi que l'ebook gratuit ici - **[[https://git-scm.com/book/fr/v2]]**.
  
-====LAB #- Créer un Repository Distant====+===LAB #- Créer un Repository Distant===
  
 Commencez par vous connecter à votre compte sur **[[https://github.com]]**. Créez ensuite un nouveau repo **puppet** à l'adresse **[[https://github.com/new]]**. Commencez par vous connecter à votre compte sur **[[https://github.com]]**. Créez ensuite un nouveau repo **puppet** à l'adresse **[[https://github.com/new]]**.
Ligne 951: Ligne 789:
 vagrant@ubuntu-xenial:~/puppet$ sudo git push -u origin master vagrant@ubuntu-xenial:~/puppet$ sudo git push -u origin master
 Username for 'https://github.com': ittrainingdev Username for 'https://github.com': ittrainingdev
-Password for 'https://ittrainingdev@github.com': +Password for 'https://ittrainingdev@github.com': <collez votre Personal Access Code ici> 
 Counting objects: 3, done. Counting objects: 3, done.
 Writing objects: 100% (3/3), 232 bytes | 0 bytes/s, done. Writing objects: 100% (3/3), 232 bytes | 0 bytes/s, done.
Ligne 964: Ligne 802:
 {{ :elearning:workbooks:debian:6:senior:puppet1.png?nolink&600 |}} {{ :elearning:workbooks:debian:6:senior:puppet1.png?nolink&600 |}}
  
-====LAB #7 - Cloner un Repository====+===LAB #7 - Cloner un Repository===
  
 Le répertoire par défaut de stockage des manifests de Puppet est **/etc/puppetlabs/code/environments/**.  Le répertoire par défaut de stockage des manifests de Puppet est **/etc/puppetlabs/code/environments/**. 
Ligne 1007: Ligne 845:
 </code> </code>
  
-====LAB #- Appliquer des Modifications Automatiquement====+===LAB #- Appliquer des Modifications Automatiquement===
  
 En production, chaque nœud doit automatiquement télécharger les modifications du code dans le **repo** distant puis les appliquer avec Puppet. En production, chaque nœud doit automatiquement télécharger les modifications du code dans le **repo** distant puis les appliquer avec Puppet.
Ligne 1041: Ligne 879:
 </code> </code>
  
-<WRAP center round important 50%>+<WRAP center round important>
 **Important** - Ce manifest copie le script **/etc/puppetlabs/code/environments/production/files/run-puppet.sh** dans le répertoire **/usr/local/bin/** du nœud en le nommant **run-puppet** puis crée un cron job qui appel ce script toutes les 15 minutes. **Important** - Ce manifest copie le script **/etc/puppetlabs/code/environments/production/files/run-puppet.sh** dans le répertoire **/usr/local/bin/** du nœud en le nommant **run-puppet** puis crée un cron job qui appel ce script toutes les 15 minutes.
 </WRAP> </WRAP>
Ligne 1067: Ligne 905:
 </code> </code>
  
-====LAB #- Mise en Place sur un Noeud====+===LAB #- Mise en Place sur un Noeud===
  
 Votre nœud se trouve dans le répertoire **/etc/puppetlabs/code/environments/production** : Votre nœud se trouve dans le répertoire **/etc/puppetlabs/code/environments/production** :
Ligne 1135: Ligne 973:
  
 ---- ----
-<html> +Copyright © 2022 Hugh Norris.
-<DIV ALIGN="CENTER"> +
-Copyright © 2020 Hugh Norris.<br><br> +
-</div> +
-</html>+
Menu