Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| elearning:workbooks:debian:6:avance:l129:part1 [2020/05/27 14:41] – admin | elearning:workbooks:debian:6:avance:l129:part1 [2022/06/20 17:07] (Version actuelle) – admin | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| ~~PDF: | ~~PDF: | ||
| - | 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===== | ||
| - | | + | |
| - | * Que couvre ce cours ? | + | * Contenu du Module |
| - | * Qu' | + | * Qu' |
| - | * Démarrer avec Puppet | + | * Démarrer avec Puppet |
| - | * LAB #1 - Installation | + | * Utiliser des Manifests |
| - | * Installer Git | + | * LAB #1 - Gestion des Fichiers |
| - | * Sous Debian/ | + | * 1.1 - Modification d'un Fichier Existant sur le Serveur |
| - | * Sous Windows | + | * 1.2 - Effectuer un Dry Run avec Puppet |
| - | * Installer VirtualBox | + | * LAB #2 - Gestion des Paquets |
| - | * Installer Vagrant | + | * LAB #3 - Gestion des Services |
| - | * Installer la Machine Virtuelle Puppet | + | |
| - | * Sous Debian/ | + | |
| - | * Sous Windows | + | |
| - | * Se connecter à la Machine Virtuelle Puppet | + | |
| - | * Sous Debian/ | + | |
| - | * Sous Windows | + | |
| - | * Utiliser des manifests | + | |
| - | * LAB #2 - Gestion des Fichiers | + | |
| - | * Modification d'un Fichier Existant sur le Serveur | + | |
| - | * Effectuer un Dry Run avec Puppet | + | |
| - | * LAB #3 - Gestion des Paquets | + | |
| - | * LAB #4 - Gestion des Services | + | |
| * Gérer du code Puppet avec Git | * Gérer du code Puppet avec Git | ||
| - | * LAB #5 - Créer un Repository Local | + | * LAB #4 - Créer un Repository Local |
| - | * Les Branches avec Git | + | * 4.1 - Les Branches avec Git |
| - | * LAB #6 - Créer un Repository Distant | + | * LAB #5 - Créer un Repository Distant |
| - | * LAB #7 - Cloner un Repository | + | * LAB #6 - Cloner un Repository |
| - | * LAB #8 - Appliquer des Modifications Automatiquement | + | * LAB #7 - Appliquer des Modifications Automatiquement |
| - | * LAB #9 - Mise en Place sur un Noeud | + | * LAB #8 - Mise en Place sur un Nœud |
| =====Qu' | =====Qu' | ||
| Ligne 59: | Ligne 47: | ||
| * de gérer individuellement les droits utilisateurs. | * de gérer individuellement les droits utilisateurs. | ||
| - | =====Que couvre ce cours ?===== | ||
| - | |||
| - | Ce cours couvre les sujets suivants : | ||
| - | |||
| - | * Démarrer avec Puppet, | ||
| - | * Utiliser des mainifests, | ||
| - | * Gérer du code Puppet avec Git, | ||
| - | * Les Ressources Puppet, | ||
| - | * Variables, Expressions et Expressions Conditionnelles et Facts, | ||
| - | * Hiera, | ||
| - | * Modules Puppet, | ||
| - | * Installer Puppet en mode Agent/ | ||
| - | | ||
| =====Démarrer avec Puppet===== | =====Démarrer avec Puppet===== | ||
| Ligne 119: | Ligne 94: | ||
| * un nœud est dédié à l' | * un nœud est dédié à l' | ||
| - | <WRAP center round important | + | <WRAP center round important> |
| **Important** - Ce cours commence avec l' | **Important** - Ce cours commence avec l' | ||
| </ | </ | ||
| - | ====LAB #1 - Installation==== | + | Commencez en vous connectant |
| - | + | ||
| - | ===Installer Git=== | + | |
| - | + | ||
| - | Si ce n'est pas déjà fait, commencez par créer votre compte sur GitHub **[[https:// | + | |
| - | + | ||
| - | Si ce n'est pas déjà fait, naviguez | + | |
| - | + | ||
| - | Clonez ensuite les fichiers pour ce cours : | + | |
| - | + | ||
| - | ==Sous Debian/ | + | |
| < | < | ||
| - | trainee@puppet:~$ git clone https:// | + | trainee@traineeXX:~$ ssh -l trainee 10.0.2.70 |
| - | Clonage dans ' | + | |
| - | remote: Counting objects: 854, done. | + | |
| - | remote: Total 854 (delta | + | |
| - | Réception d' | + | |
| - | Résolution des deltas: 100% (443/443), fait. | + | |
| </ | </ | ||
| - | ==Sous Windows== | + | Les noms d'utilisateurs |
| - | + | ||
| - | < | + | |
| - | C: | + | |
| - | Cloning into 'puppet-beginners-guide-3' | + | |
| - | 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. | + | |
| - | </ | + | |
| - | + | ||
| - | ===Installer VirtualBox=== | + | |
| - | + | ||
| - | Si ce n'est pas déjà fait, naviguez à l'URL **[[https:// | + | |
| - | + | ||
| - | ===Installer Vagrant=== | + | |
| - | + | ||
| - | Si ce n'est pas déjà fait, naviguez à l'URL **[[https:// | + | |
| - | ===Installer la Machine Virtuelle Puppet=== | + | ^ Utilisateur ^ Mot de Passe ^ |
| + | | trainee | trainee | | ||
| + | | root | fenestros | | ||
| - | ==Sous Debian/ | + | Démarrez maintenant votre environnement de travail Puppet : |
| < | < | ||
| - | trainee@puppet:~$ cd puppet-beginners-guide-3 | + | trainee@debian10: |
| - | trainee@puppet: | + | |
| </ | </ | ||
| - | ==Sous Windows== | + | ====Utiliser des Manifests==== |
| - | Ajoutez le chemin **C: | + | Re-démarrez |
| - | + | ||
| - | Par exemple, sous Windows(tm) 10 : | + | |
| - | + | ||
| - | < | + | |
| - | Panneau de configuration > Système et sécurité > Système > Modifier les paramètres > Paramètres système avancés > Variables d'environnement | + | |
| - | </ | + | |
| - | + | ||
| - | Exécutez **cmd** et saisissez les commandes suivantes : | + | |
| - | + | ||
| - | < | + | |
| - | Microsoft Windows [version 10.0.16299.431] | + | |
| - | (c) 2017 Microsoft Corporation. Tous droits réservés. | + | |
| - | + | ||
| - | C: | + | |
| - | + | ||
| - | C: | + | |
| - | + | ||
| - | C: | + | |
| - | + | ||
| - | C: | + | |
| - | </ | + | |
| - | + | ||
| - | **Git bash** sera lancé pour exécuter le script. | + | |
| - | + | ||
| - | ===Se connecter à la Machine Virtuelle | + | |
| - | + | ||
| - | A l' | + | |
| < | < | ||
| - | ... | + | trainee@debian10:~/puppet-beginners-guide-3$ vagrant reload |
| - | default: The `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 | + | |
| </ | </ | ||
| - | Connectez-vous à la machine virtuelle en utilisant la commande **vagrant ssh** : | + | ===LAB #1 - Gestion des Fichiers=== |
| - | ==Sous Debian/ | + | Connectez-vous à votre environnement de travail Puppet et créez le fichier **file_hello.pp** : |
| < | < | ||
| - | hnorris@Laptop: | + | trainee@debian10: |
| - | Welcome to Ubuntu 16.04.6 LTS (GNU/Linux 4.4.0-173-generic x86_64) | + | Welcome to Ubuntu 16.04.7 LTS (GNU/Linux 4.4.0-210-generic x86_64) |
| * Documentation: | * Documentation: | ||
| Ligne 225: | Ligne 136: | ||
| * Support: | * Support: | ||
| + | 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 ' |
| - | 7 updates are security updates. | + | |
| - | + | ||
| - | New release ' | + | |
| Run ' | Run ' | ||
| + | Last login: Thu Apr 29 10:16:09 2021 from 10.0.2.2 | ||
| vagrant@ubuntu-xenial: | vagrant@ubuntu-xenial: | ||
| - | </ | ||
| - | |||
| - | Vérifiez que Puppet a bien été installé : | ||
| - | |||
| - | < | ||
| - | vagrant@ubuntu-xenial: | ||
| - | 6.12.0 | ||
| - | vagrant@ubuntu-xenial: | ||
| - | logout | ||
| - | Connection to 127.0.0.1 closed. | ||
| - | </ | ||
| - | |||
| - | ==Sous Windows== | ||
| - | |||
| - | < | ||
| - | C: | ||
| - | Welcome to Ubuntu 16.04.4 LTS (GNU/Linux 4.4.0-127-generic x86_64) | ||
| - | |||
| - | * Documentation: | ||
| - | * Management: | ||
| - | * Support: | ||
| - | |||
| - | Get cloud support with Ubuntu Advantage Cloud Guest: | ||
| - | http:// | ||
| - | |||
| - | 0 packages can be updated. | ||
| - | 0 updates are security updates. | ||
| - | |||
| - | |||
| - | vagrant@ubuntu-xenial: | ||
| - | </ | ||
| - | |||
| - | Vérifiez que Puppet a bien été installé : | ||
| - | |||
| - | < | ||
| - | vagrant@ubuntu-xenial: | ||
| - | 6.12.0 | ||
| - | vagrant@ubuntu-xenial: | ||
| - | logout | ||
| - | Connection to 127.0.0.1 closed. | ||
| - | |||
| - | C: | ||
| - | </ | ||
| - | |||
| - | =====Utiliser des mainifests===== | ||
| - | |||
| - | ====LAB #2 - Gestion des Fichiers==== | ||
| - | |||
| - | Re-connectez-vous à votre machine virtuelle et créez le fichier **file_hello.pp** : | ||
| - | |||
| - | < | ||
| - | hnorris@Laptop: | ||
| - | Welcome to Ubuntu 16.04.6 LTS (GNU/Linux 4.4.0-173-generic x86_64) | ||
| - | |||
| - | * Documentation: | ||
| - | * Management: | ||
| - | * Support: | ||
| - | |||
| - | |||
| - | 7 packages can be updated. | ||
| - | 7 updates are security updates. | ||
| - | |||
| - | New release ' | ||
| - | Run ' | ||
| - | |||
| - | Last login: Tue Feb 11 08:32:56 2020 from 10.0.2.2 | ||
| vagrant@ubuntu-xenial: | vagrant@ubuntu-xenial: | ||
| vagrant@ubuntu-xenial: | vagrant@ubuntu-xenial: | ||
| Ligne 309: | Ligne 155: | ||
| </ | </ | ||
| - | < | + | Dans ce fichier nous pouvons constater la déclaration d'une ressource de type fichier avec **file**. Une ressource est une configuration que vous souhaitez être gérée |
| - | C: | + | |
| - | Welcome to Ubuntu 16.04.4 LTS (GNU/Linux 4.4.0-127-generic x86_64) | + | |
| - | + | ||
| - | * Documentation: | + | |
| - | * Management: | + | |
| - | * Support: | + | |
| - | + | ||
| - | Get cloud support with Ubuntu Advantage Cloud Guest: | + | |
| - | http:// | + | |
| - | + | ||
| - | 7 packages can be updated. | + | |
| - | 7 updates are security updates. | + | |
| - | + | ||
| - | New release ' | + | |
| - | Run ' | + | |
| - | + | ||
| - | + | ||
| - | Last login: Sat May 26 12:25:41 2018 from 10.0.2.2 | + | |
| - | + | ||
| - | vagrant@ubuntu-xenial: | + | |
| - | vagrant@ubuntu-xenial: | + | |
| - | file { '/ | + | |
| - | ensure | + | |
| - | content => " | + | |
| - | } | + | |
| - | </ | + | |
| - | + | ||
| - | Dans ce fichier nous pouvons constater la déclaration d'une ressource de type fichier avec **file**. Une ressource est une configuration que vous souhaitez être géréé | + | |
| < | < | ||
| Ligne 348: | Ligne 166: | ||
| La ressource est identifiée par un titre. Chaque ressource doit avoir un titre unique. Dans le cas d'un fichier c'est le chemin complet vers le fichier - **/ | La ressource est identifiée par un titre. Chaque ressource doit avoir un titre unique. Dans le cas d'un fichier c'est le chemin complet vers le fichier - **/ | ||
| - | Le reste du code est une liste d' | + | Le reste du code est une liste d' |
| * le contenu, | * le contenu, | ||
| Ligne 356: | Ligne 174: | ||
| * etc ... | * etc ... | ||
| - | <WRAP center round important | + | <WRAP center round important> |
| **Important** - Bien que les attributs soient différents selon le type de ressource, l' | **Important** - Bien que les attributs soient différents selon le type de ressource, l' | ||
| </ | </ | ||
| Ligne 368: | Ligne 186: | ||
| * Puppet lit le catalogue et applique chaque ressource à tour de rôle. | * Puppet lit le catalogue et applique chaque ressource à tour de rôle. | ||
| - | Le nom du manifest n'est pas important, par contre l' | + | Le nom du manifest n'est pas important, par contre l’extension |
| Appliquez ce fichier avec la commande suivante : | Appliquez ce fichier avec la commande suivante : | ||
| Ligne 386: | Ligne 204: | ||
| </ | </ | ||
| - | ===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 402: | Ligne 220: | ||
| </ | </ | ||
| - | <WRAP center round important | + | <WRAP center round important> |
| - | **Important** - Des modifications manuelles faites donc à un fichier géré par Puppet seront perdues la prochaine fois que Puppet s' | + | **Important** - Des modifications manuelles faites donc à un fichier géré par Puppet seront perdues la prochaine fois que Puppet s' |
| </ | </ | ||
| - | ===Effectuer un Dry Run avec Puppet=== | + | ==1.2 - Effectuer un Dry Run avec Puppet== |
| - | Il est possible de demander à Puppet, grâce à l' | + | Il est possible de demander à Puppet, grâce à l' |
| < | < | ||
| Ligne 442: | Ligne 260: | ||
| </ | </ | ||
| - | ====LAB #3 - Gestion des Paquets==== | + | ===LAB #2 - 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 | + | 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 |
| < | < | ||
| Ligne 464: | Ligne 282: | ||
| </ | </ | ||
| - | <WRAP center round important | + | <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**. | ||
| </ | </ | ||
| Ligne 578: | Ligne 396: | ||
| </ | </ | ||
| - | Cette commande génère un manifest pour l' | + | Cette commande génère un manifest pour l' |
| < | < | ||
| Ligne 589: | Ligne 407: | ||
| Si vous modifiez ce manifest, lors de l' | Si vous modifiez ce manifest, lors de l' | ||
| - | ====LAB #4 - Gestion des Services==== | + | ===LAB #3 - 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 852: | Ligne 670: | ||
| </ | </ | ||
| - | =====Gérer du code Puppet avec Git===== | + | ====Gérer du code Puppet avec Git==== |
| Git est : | Git est : | ||
| Ligne 860: | 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, | + | Quand le code d'un projet est modifié par un développeur, |
| - | <WRAP center round important | + | <WRAP center round important> |
| **Important** - Pour apprendre comment écrire un message de commit Git, consultez ce lien : **[[https:// | **Important** - Pour apprendre comment écrire un message de commit Git, consultez ce lien : **[[https:// | ||
| </ | </ | ||
| - | ====LAB #5 - Créer un Repository Local==== | + | Commencez par : |
| + | |||
| + | * créez votre compte sur **[[https:// | ||
| + | * puis créez votre **Personal Access Token**. | ||
| + | |||
| + | Copiez le Personal Access Token car vous en aurez besoin par la suite. | ||
| + | |||
| + | ===LAB #4 - 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 878: | Ligne 703: | ||
| </ | </ | ||
| - | Git a besoin de savoir qui vous êtes. | + | Git a besoin de savoir qui vous êtes. |
| < | < | ||
| Ligne 943: | Ligne 768: | ||
| </ | </ | ||
| - | ===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 : | ||
| - | * de connecter un noeud à une branche spécifique pour tester du code, sans l' | + | * de connecter un nœud à une branche spécifique pour tester du code, sans l' |
| * à deux ou plusieurs développeurs de travailler d'une manière indépendante puis d' | * à deux ou plusieurs développeurs de travailler d'une manière indépendante puis d' | ||
| Vous pouvez trouver d' | Vous pouvez trouver d' | ||
| - | ====LAB #6 - Créer un Repository Distant==== | + | ===LAB #5 - Créer un Repository Distant=== |
| Commencez par vous connecter à votre compte sur **[[https:// | Commencez par vous connecter à votre compte sur **[[https:// | ||
| Ligne 964: | Ligne 789: | ||
| vagrant@ubuntu-xenial: | vagrant@ubuntu-xenial: | ||
| Username for ' | Username for ' | ||
| - | Password for ' | + | Password for ' |
| 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 977: | Ligne 802: | ||
| {{ : | {{ : | ||
| - | ====LAB #7 - Cloner un Repository==== | + | ===LAB #7 - Cloner un Repository=== |
| Le répertoire par défaut de stockage des manifests de Puppet est **/ | Le répertoire par défaut de stockage des manifests de Puppet est **/ | ||
| Ligne 1002: | Ligne 827: | ||
| </ | </ | ||
| - | Git refuse de cloner vers un répertoire non-vide. | + | Git refuse de cloner vers un répertoire non-vide. |
| < | < | ||
| Ligne 1020: | Ligne 845: | ||
| </ | </ | ||
| - | ====LAB #8 - Appliquer des Modifications Automatiquement==== | + | ===LAB #7 - 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 1054: | Ligne 879: | ||
| </ | </ | ||
| - | <WRAP center round important | + | <WRAP center round important> |
| - | **Important** - Ce manifest copie le script **/ | + | **Important** - Ce manifest copie le script **/ |
| </ | </ | ||
| Ligne 1080: | Ligne 905: | ||
| </ | </ | ||
| - | ====LAB #9 - Mise en Place sur un Noeud==== | + | ===LAB #8 - Mise en Place sur un Noeud=== |
| - | Votre noeud se trouve dans le répertoire **/ | + | Votre nœud se trouve dans le répertoire **/ |
| < | < | ||
| Ligne 1116: | Ligne 941: | ||
| </ | </ | ||
| - | Appliquez maintenant le mainifest sur le noeud : | + | Appliquez maintenant le mainifest sur le nœud : |
| < | < | ||
| Ligne 1126: | Ligne 951: | ||
| </ | </ | ||
| - | Vérifiez que le script a été créé sur le noeud : | + | Vérifiez que le script a été créé sur le nœud : |
| < | < | ||
| Ligne 1148: | Ligne 973: | ||
| ---- | ---- | ||
| - | < | + | Copyright © 2022 Hugh Norris. |
| - | <DIV ALIGN=" | + | |
| - | Copyright © 2020 Hugh Norris.< | + | |
| - | </ | + | |
| - | </ | + | |