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===== | ||
- | | + | |
- | * Contenu du Module | + | * 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.< | + | |
- | </ | + | |
- | </ | + |