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:part4 [2020/02/12 10:29] adminelearning:workbooks:debian:6:avance:l129:part4 [2022/06/22 08:56] (Version actuelle) admin
Ligne 1: Ligne 1:
-Version : **2020.01** 
- 
 ~~PDF:LANDSCAPE~~ ~~PDF:LANDSCAPE~~
 +
 +Version : **2022.01**
  
 Dernière mise-à-jour : ~~LASTMOD~~ Dernière mise-à-jour : ~~LASTMOD~~
Ligne 7: Ligne 7:
 ======DOF404 - Hiera et Modules====== ======DOF404 - Hiera et Modules======
  
-=====Hiera=====+=====Contenu du Module=====
  
-====Préparation====+  * **DOF404 - Hiera et Modules** 
 +    * Contenu du Module 
 +    * Préparation 
 +    * Hiera 
 +      * Présentation 
 +      * LAB #1 - Environnements 
 +      * LAB #2 -Les Types de Données Hiera 
 +      * LAB #3 - Interpolation 
 +        * Les Sources de Données basées sur des Facts 
 +      * LAB #4 -Créer des Ressources avec les Données d'Hiera 
 +      * LAB #5 - Gérer des Données Secrètes 
 +    * Modules 
 +      * LAB #6 - Installer des Modules 
 +      * LAB #7 - Utilisation des Modules 
 +        * puppetlabs/mysql 
 +        * puppetlabs/apache 
 +        * puppet/archive
  
-===Sous Debian/Ubuntu===+=====Préparation===== 
 + 
 +Re-créez la machine virtuelle Puppet :
  
 <code> <code>
-trainee@puppet:~$ cd puppet-beginners-guide-3 +desktop@serverXX:~$ cd puppet-beginners-guide-3 
-trainee@puppet:~/puppet-beginners-guide-3$ vagrant destroy +desktop@serverXX:~/puppet-beginners-guide-3$ vagrant destroy 
-trainee@puppet:~/puppet-beginners-guide-3$ scripts/start_vagrant.sh +desktop@serverXX:~/puppet-beginners-guide-3$ scripts/start_vagrant.sh 
-trainee@puppet:~/puppet-beginners-guide-3$ vagrant ssh+desktop@serverXX:~/puppet-beginners-guide-3$ vagrant ssh
 </code> </code>
  
-===Sous Windows=== +=====Hiera=====
- +
-Exécutez **cmd** et saisissez les commandes suivantes : +
- +
-<code> +
-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>vagrant destroy +
- +
-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>vagrant ssh +
-</code>+
  
 ====Présentation==== ====Présentation====
  
-Le manifest suivant stipule la version de l'agent Puppet qui doit être installé sur un noeud :+Le manifest suivant stipule la version de l'agent Puppet qui doit être installé sur un nœud :
  
 <file> <file>
Ligne 49: Ligne 50:
 </file> </file>
  
-Quand une mise à jour devient disponible, ce code doit être trouvé et modifié sur l'ensemble des noeuds. La multiplication de cette tâche pour tous les paquets référencés par les manifests mène à un travail titantesque, compliqué et fastidieux.+Quand une mise à jour devient disponible, ce code doit être trouvé et modifié sur l'ensemble des nœuds. La multiplication de cette tâche pour tous les paquets référencés par les manifests mène à un travail titanesque, compliqué et fastidieux.
  
 Qui plus est, la mise à jour des données dans les manifests ne concerne pas uniquement les paquets mais aussi, par exemple, les : Qui plus est, la mise à jour des données dans les manifests ne concerne pas uniquement les paquets mais aussi, par exemple, les :
Ligne 59: Ligne 60:
   * valeurs des configurations telles la quantité de mémoire allouée à un serveur de base de données.   * valeurs des configurations telles la quantité de mémoire allouée à un serveur de base de données.
  
-Hiera permet de gérer les données indépendamment du code Puppet et de spécifier des valeurs différentes par noeud en fonction, par exemple, du nom d'hôte ou du système d'exploitation. Hiera stocke ces informations dans de simples fichiers texte ayant une extention **.yaml** ( YAML Ain't Markup Language ).+Hiera permet de gérer les données indépendamment du code Puppet et de spécifier des valeurs différentes par noeud en fonction, par exemple, du nom d'hôte ou du système d'exploitation. Hiera stocke ces informations dans de simples fichiers texte ayant une extension **.yaml** ( YAML Ain't Markup Language ).
  
 Puppet peut ensuite consulter les informations en utilisant **lookup** : Puppet peut ensuite consulter les informations en utilisant **lookup** :
Ligne 69: Ligne 70:
 </file> </file>
  
-<WRAP center round important 50%>+<WRAP center round important>
 **Important** - **lookup** a besoin du nom de la clef Hiera, par exemple **backup_path**, ainsi que le type de données, soit **String** dans l'exemple ci-dessus. **Important** - **lookup** a besoin du nom de la clef Hiera, par exemple **backup_path**, ainsi que le type de données, soit **String** dans l'exemple ci-dessus.
 </WRAP> </WRAP>
Ligne 90: Ligne 91:
 </code> </code>
  
-Prenons le cas d'un fichier de configuration hiera.yaml minimalist :+Prenons le cas d'un fichier de configuration hiera.yaml minimaliste :
  
 <file> <file>
Ligne 125: Ligne 126:
 </code> </code>
  
-====LAB #20 - Environnements====+====LAB #- Environnements====
  
 Un environnement est un répertoire contenant : Un environnement est un répertoire contenant :
Ligne 262: Ligne 263:
 </code> </code>
  
-====LAB #21 -Les Types de Données Hiera====+====LAB #-Les Types de Données Hiera====
  
 Dans le fichier **/etc/puppetlabs/code/environments/pbg/data/common.yaml**, on peut constater trois types de données : Dans le fichier **/etc/puppetlabs/code/environments/pbg/data/common.yaml**, on peut constater trois types de données :
Ligne 375: Ligne 376:
 </file> </file>
  
-<WRAP center round important 50%>+<WRAP center round important>
 **Important** - Une valeur booléenne doit être soit **true**, soit **false**. **Important** - Une valeur booléenne doit être soit **true**, soit **false**.
 </WRAP> </WRAP>
Ligne 403: Ligne 404:
 </file> </file>
  
-Chaque clef du Hash possède son propre nom et est indéntée par rapport à la première ligne.+Chaque clef du Hash possède son propre nom et est indentée par rapport à la première ligne.
  
 Pour mieux comprendre, créez le fichier **lookup_hash.pp** : Pour mieux comprendre, créez le fichier **lookup_hash.pp** :
Ligne 459: Ligne 460:
 </file> </file>
  
-====LAB #22 - Interpolation====+====LAB #- Interpolation====
  
 L'interpolation est l'action d'introduire dans un texte un élément qui n'était pas dans l'original. Avec Puppet et Hiera ceci concerne : L'interpolation est l'action d'introduire dans un texte un élément qui n'était pas dans l'original. Avec Puppet et Hiera ceci concerne :
Ligne 496: Ligne 497:
 </code> </code>
    
-<WRAP center round important 50%>+<WRAP center round important>
 **Important** - La priorité des sources est descendante. Si la valeur d'une clef est spécifiée dans deux sources et les valeurs sont différentes, Hiera recherche dans les sources de données dans l'ordre de leur apparition dans le fichier **hiera.yaml** et retourne par défaut la **première** valeur retrouvée.  **Important** - La priorité des sources est descendante. Si la valeur d'une clef est spécifiée dans deux sources et les valeurs sont différentes, Hiera recherche dans les sources de données dans l'ordre de leur apparition dans le fichier **hiera.yaml** et retourne par défaut la **première** valeur retrouvée. 
 </WRAP> </WRAP>
Ligne 514: Ligne 515:
   * **Hash Merge** - retourne un Hash contenant toutes les clefs et toutes les valeurs correspondantes qui correspondent à la recherche,   * **Hash Merge** - retourne un Hash contenant toutes les clefs et toutes les valeurs correspondantes qui correspondent à la recherche,
   * **Shallow Merge** - si Hiera retrouve deux Hash avec le même nom, il retourne uniquement le premier Hash,   * **Shallow Merge** - si Hiera retrouve deux Hash avec le même nom, il retourne uniquement le premier Hash,
-  * **Deep merge** - permet de considerer le Hash entoer et non seulement que le premier niveau.+  * **Deep merge** - permet de considérer le Hash entier et non seulement que le premier niveau.
  
-==Les Sources de Données basées sur des Facts==+===Les Sources de Données basées sur des Facts===
  
 Revenons au fichier **/etc/puppetlabs/code/environments/pbg/hiera.yaml** : Revenons au fichier **/etc/puppetlabs/code/environments/pbg/hiera.yaml** :
Ligne 556: Ligne 557:
 </file> </file>
  
-Ces deux lignes permettent d'avoir une configuration différente par noeud contenue dans un fichier dénommé <nom d'hôte>.yaml.+Ces deux lignes permettent d'avoir une configuration différente par nœud contenue dans un fichier dénommé <nom d'hôte>.yaml.
  
 De même les deux lignes suivantes : De même les deux lignes suivantes :
Ligne 569: Ligne 570:
 permettent une configuration différente par version du système d'exploitation. permettent une configuration différente par version du système d'exploitation.
  
-====LAB #23 -Créer des Ressources avec le Données d'Hiera====+====LAB #-Créer des Ressources avec les Données d'Hiera====
  
 Commencez par créer le fichier **hiera_users.pp** : Commencez par créer le fichier **hiera_users.pp** :
Ligne 683: Ligne 684:
 </code> </code>
  
-====LAB #24 - Gérer des Données Secrètes====+====LAB #- Gérer des Données Secrètes====
  
 Souvent Puppet a besoin d'informations sensibles telles : Souvent Puppet a besoin d'informations sensibles telles :
Ligne 717: Ligne 718:
 Processing triggers for ureadahead (0.100.0-19.1) ... Processing triggers for ureadahead (0.100.0-19.1) ...
 Processing triggers for systemd (229-4ubuntu21.23) ... Processing triggers for systemd (229-4ubuntu21.23) ...
 +</code>
 +
 +Si la version installée de ruby est inférieure à la 2.5.0, mettez à jour ruby :
 +
 +<code>
 +vagrant@ubuntu-xenial:~$ wget -O ruby-install-0.8.3.tar.gz https://github.com/postmodern/ruby-install/archive/v0.8.3.tar.gz
 +vagrant@ubuntu-xenial:~$ tar -xzvf ruby-install-0.8.3.tar.gz
 +vagrant@ubuntu-xenial:~$ cd ruby-install-0.8.3/
 +vagrant@ubuntu-xenial:~$ sudo make install
 +vagrant@ubuntu-xenial:~$ sudo ruby-install ruby 2.5.1
 +</code>
 +
 +Installez ensuite le support gpg pour Hiera :
 +
 +<code>
 +vagrant@ubuntu-xenial:~$ sudo gem install hiera-eyaml-gpg
 </code> </code>
  
Ligne 867: Ligne 884:
 </code> </code>
  
-<WRAP center round important 50%>+<WRAP center round important>
 **Important** - Utilisez l'adresse email saisie lors de l'exécution de la commande **gpg --gen-key**.  **Important** - Utilisez l'adresse email saisie lors de l'exécution de la commande **gpg --gen-key**. 
 </WRAP> </WRAP>
Ligne 887: Ligne 904:
 </file> </file>
  
-Editez ce fichier ainsi et sauvegardez-le :+Éditez ce fichier ainsi et sauvegardez-le :
  
 <file> <file>
Ligne 915: Ligne 932:
 </code> </code>
  
-<WRAP center round important 50%>+<WRAP center round important>
 **Important** - **ENC** indique à Hiera que ce fichier est crypté. GPG indique à Hiera quel type de cryptage.  **Important** - **ENC** indique à Hiera que ce fichier est crypté. GPG indique à Hiera quel type de cryptage. 
 </WRAP> </WRAP>
Ligne 935: Ligne 952:
 </code> </code>
  
-<WRAP center round important 50%>+<WRAP center round important>
 **Important** - Utilisez l'adresse email saisie lors de l'exécution de la commande **gpg --gen-key**.  **Important** - Utilisez l'adresse email saisie lors de l'exécution de la commande **gpg --gen-key**. 
 </WRAP> </WRAP>
Ligne 980: Ligne 997:
 </file> </file>
  
-<WRAP center round important 50%>+<WRAP center round important>
 **Important** - Notez la modification automatique de la ligne **test_secret: DEC::GPG[This is a test secret]!** en **test_secret: DEC(1)::GPG[This is a test secret]!**. Le numéro indique que le secret est existant et non un nouveau secret.  **Important** - Notez la modification automatique de la ligne **test_secret: DEC::GPG[This is a test secret]!** en **test_secret: DEC(1)::GPG[This is a test secret]!**. Le numéro indique que le secret est existant et non un nouveau secret. 
 </WRAP> </WRAP>
  
-Ajoutez maintenant un dexième secret :+Ajoutez maintenant un deuxième secret :
  
 <file> <file>
Ligne 1010: Ligne 1027:
 </code> </code>
  
-Dernièrement il faut copier la clef GPG a chaque noeud. Pour exporter la clef, utilisez la commande suivante :+Dernièrement il faut copier la clef GPG a chaque nœud. Pour exporter la clef, utilisez la commande suivante :
  
 <code> <code>
Ligne 1080: Ligne 1097:
 </code> </code>
  
-Sur les autres neouds, importez la clef :+Sur les autres nœuds, importez la clef :
  
 <file> <file>
Ligne 1117: Ligne 1134:
 Les modules sont regroupés en deux groupes : Les modules sont regroupés en deux groupes :
  
-  * **Supported** - les modules beneficient du support de Puppet,+  * **Supported** - les modules bénéficient du support de Puppet,
     * URL - **[[https://forge.puppet.com/modules?endorsements=supported]]**,     * URL - **[[https://forge.puppet.com/modules?endorsements=supported]]**,
-  * **Approved** - les modules ne beneficient pas du support de Puppet mais il sont approuvés par ce dernier pour l'utilisation dont ils ont été conçus,+  * **Approved** - les modules ne bénéficient pas du support de Puppet mais il sont approuvés par ce dernier pour l'utilisation dont ils ont été conçus,
     * URL - **[[https://forge.puppet.com/modules?endorsements=approved]]**.     * URL - **[[https://forge.puppet.com/modules?endorsements=approved]]**.
  
-====LAB #25 - Installer des Modules====+====LAB #- Installer des Modules====
  
 Le gestionnaire de modules de Puppet s'appelle **r10k**. Le gestionnaire utilise un fichier qui s'appelle **Puppetfile** qui se trouve dans le répertoire de l'environnement : Le gestionnaire de modules de Puppet s'appelle **r10k**. Le gestionnaire utilise un fichier qui s'appelle **Puppetfile** qui se trouve dans le répertoire de l'environnement :
Ligne 1153: Ligne 1170:
  
   * la variable **forge** spécifie le repository à utiliser,   * la variable **forge** spécifie le repository à utiliser,
-  * la variable **mod** specifie le nom et la version du module à installer.+  * la variable **mod** spécifie le nom et la version du module à installer.
  
 Supprimez les trois dernières lignes du fichier **Puppetfile** : Supprimez les trois dernières lignes du fichier **Puppetfile** :
Ligne 1205: Ligne 1222:
 </code> </code>
  
-<WRAP center round important 50%>+<WRAP center round important>
 **Important** - La fonction **upcase** fait partie du module **stdlib**.  **Important** - La fonction **upcase** fait partie du module **stdlib**. 
 </WRAP> </WRAP>
Ligne 1343: Ligne 1360:
 </code> </code>
  
-====LAB #26 - Utilisation des Modules====+====LAB #- Utilisation des Modules====
  
 ===puppetlabs/mysql=== ===puppetlabs/mysql===
Ligne 1386: Ligne 1403:
 </code> </code>
  
-<WRAP center round important 50%>+<WRAP center round important>
 **Important** - Le mot de passe de root pour MySQL **hairline-quotient-inside-tableful** est ici en clair. En production, ce mot de passe serait crypté comme nous avons déjà vu. **Important** - Le mot de passe de root pour MySQL **hairline-quotient-inside-tableful** est ici en clair. En production, ce mot de passe serait crypté comme nous avons déjà vu.
 </WRAP> </WRAP>
Ligne 1401: Ligne 1418:
 </file> </file>
  
-<WRAP center round important 50%>+<WRAP center round important>
 **Important** - Le nom de la ressource **cat_pictures** est le nom de la base de données. Les attributs **user**, **password**, **host** et **grant** indiquent que l'utilisateur **greebo** peut se connecter à MySQL à partir du **localhost** en utilisant le mot de passe **tabby** et qu'il aura les privilèges **SELECT** et **UPDATE** sur la base de données **cat-pictures**. **Important** - Le nom de la ressource **cat_pictures** est le nom de la base de données. Les attributs **user**, **password**, **host** et **grant** indiquent que l'utilisateur **greebo** peut se connecter à MySQL à partir du **localhost** en utilisant le mot de passe **tabby** et qu'il aura les privilèges **SELECT** et **UPDATE** sur la base de données **cat-pictures**.
 </WRAP> </WRAP>
Ligne 1408: Ligne 1425:
  
 <code> <code>
-vagrant@ubuntu-xenial:~$ sudo puppet apply --environment=pbg module_mysql.pp  +vagrant@ubuntu-xenial:~$ sudo puppet apply --environment=pbg module_mysql.pp 
-Notice: Compiled catalog for ubuntu-xenial.ief2i.fr in environment pbg in 4.49 seconds+Notice: Compiled catalog for ubuntu-xenial in environment pbg in 0.38 seconds 
 +Notice: /Stage[main]/Mysql::Server::Config/File[/etc/mysql]/ensure: created 
 +Notice: /Stage[main]/Mysql::Server::Config/File[/etc/mysql/conf.d]/ensure: created 
 +Notice: /Stage[main]/Mysql::Server::Config/File[mysql-config-file]/ensure: defined content as '{md5}3cb51becc6dc4533c36b0212cba6091b'
 Notice: /Stage[main]/Mysql::Server::Install/Package[mysql-server]/ensure: created Notice: /Stage[main]/Mysql::Server::Install/Package[mysql-server]/ensure: created
-Notice: /Stage[main]/Mysql::Server::Config/File[mysql-config-file]/ensure: defined content as '{md5}44e7aa974ab98260d7d013a2087f1c77' 
 Notice: /Stage[main]/Mysql::Server::Root_password/Mysql_user[root@localhost]/password_hash: changed password Notice: /Stage[main]/Mysql::Server::Root_password/Mysql_user[root@localhost]/password_hash: changed password
 Notice: /Stage[main]/Mysql::Server::Root_password/File[/root/.my.cnf]/ensure: defined content as '{md5}4bb1978026fab523a39a7fd27e4e39c2' Notice: /Stage[main]/Mysql::Server::Root_password/File[/root/.my.cnf]/ensure: defined content as '{md5}4bb1978026fab523a39a7fd27e4e39c2'
Ligne 1418: Ligne 1437:
 Notice: /Stage[main]/Main/Mysql::Db[cat_pictures]/Mysql_user[greebo@localhost]/ensure: created Notice: /Stage[main]/Main/Mysql::Db[cat_pictures]/Mysql_user[greebo@localhost]/ensure: created
 Notice: /Stage[main]/Main/Mysql::Db[cat_pictures]/Mysql_grant[greebo@localhost/cat_pictures.*]/ensure: created Notice: /Stage[main]/Main/Mysql::Db[cat_pictures]/Mysql_grant[greebo@localhost/cat_pictures.*]/ensure: created
-Notice: Applied catalog in 270.54 seconds+Notice: Applied catalog in 32.59 seconds
 </code> </code>
  
Ligne 1428: Ligne 1447:
 Welcome to the MySQL monitor.  Commands end with ; or \g. Welcome to the MySQL monitor.  Commands end with ; or \g.
 Your MySQL connection id is 26 Your MySQL connection id is 26
-Server version: 5.7.22-0ubuntu0.16.04.1 (Ubuntu)+Server version: 5.7.29-0ubuntu0.16.04.1 (Ubuntu)
  
-Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.+Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
  
 Oracle is a registered trademark of Oracle Corporation and/or its Oracle is a registered trademark of Oracle Corporation and/or its
Ligne 1445: Ligne 1464:
 | cat_pictures       | | cat_pictures       |
 +--------------------+ +--------------------+
-2 rows in set (0.01 sec)+2 rows in set (0.00 sec)
  
 mysql> USE cat_pictures; mysql> USE cat_pictures;
Ligne 1451: Ligne 1470:
 mysql> exit mysql> exit
 Bye Bye
-vagrant@ubuntu-xenial:~$  
 </code> </code>
  
Ligne 1471: Ligne 1489:
  
 file { '/var/www/cat-pictures/index.html': file { '/var/www/cat-pictures/index.html':
-  content => "<img src='http://bitfieldconsulting.com/files/happycat.jpg'>",+  content => "<img src='https://3.bp.blogspot.com/-w1McqyQflFM/VUEsrgAphKI/AAAAAAAAAdY/lbMsugNdGto/s1600/why-do-cats-purr-happycat.jpg'>",
   owner   => 'www-data',   owner   => 'www-data',
   group   => 'www-data',   group   => 'www-data',
Ligne 1499: Ligne 1517:
 </code> </code>
  
-<WRAP center round important 50%>+<WRAP center round important>
 **Important** - **apache::default_vhost: false** désactive l'hôte virtuel de la page de test d'Apache. **Important** - **apache::default_vhost: false** désactive l'hôte virtuel de la page de test d'Apache.
 </WRAP> </WRAP>
Ligne 1514: Ligne 1532:
 </file> </file>
  
-<WRAP center round important 50%>+<WRAP center round important>
 **Important** - Le nom de la ressource **cat-pictures.com** est le nom de domaine de l'hôte virtuel. Les attributs **port**, **docroot**, **docroot_owner** et **docroot_group** indiquent que l'hôte virtuel écoute sur le port **80**, que les pages à servir par apache se trouvent dans le répertoire **/var/www/cat-pictures** et que ce répertoire appartient à l'utilisateur **www-data** et est associé avec le groupe **www-data** . **Important** - Le nom de la ressource **cat-pictures.com** est le nom de domaine de l'hôte virtuel. Les attributs **port**, **docroot**, **docroot_owner** et **docroot_group** indiquent que l'hôte virtuel écoute sur le port **80**, que les pages à servir par apache se trouvent dans le répertoire **/var/www/cat-pictures** et que ce répertoire appartient à l'utilisateur **www-data** et est associé avec le groupe **www-data** .
 </WRAP> </WRAP>
Ligne 1522: Ligne 1540:
 <file> <file>
 file { '/var/www/cat-pictures/index.html': file { '/var/www/cat-pictures/index.html':
-  content => "<img src='http://bitfieldconsulting.com/files/happycat.jpg'>",+  content => "<img src='https://3.bp.blogspot.com/-w1McqyQflFM/VUEsrgAphKI/AAAAAAAAAdY/lbMsugNdGto/s1600/why-do-cats-purr-happycat.jpg'>",
   owner   => 'www-data',   owner   => 'www-data',
   group   => 'www-data',   group   => 'www-data',
Ligne 1528: Ligne 1546:
 </file> </file>
  
-<WRAP center round important 50%+<WRAP center round important> 
-**Important** - Cette ressource crée le fichier **/var/www/cat-pictures/index.html** appartenant à l'utilisateur **www-data**, étant associé au groupe **www-data** et ayant un contenu de **<img src='http://bitfieldconsulting.com/files/happycat.jpg'>** .+**Important** - Cette ressource crée le fichier **/var/www/cat-pictures/index.html** appartenant à l'utilisateur **www-data**, étant associé au groupe **www-data** et ayant un contenu de **<img src='https://3.bp.blogspot.com/-w1McqyQflFM/VUEsrgAphKI/AAAAAAAAAdY/lbMsugNdGto/s1600/why-do-cats-purr-happycat.jpg'>** .
 </WRAP> </WRAP>
  
Ligne 1536: Ligne 1554:
 <code> <code>
 vagrant@ubuntu-xenial:~$ sudo puppet apply --environment=pbg module_apache.pp vagrant@ubuntu-xenial:~$ sudo puppet apply --environment=pbg module_apache.pp
-Notice: Compiled catalog for ubuntu-xenial.ief2i.fr in environment pbg in 7.55 seconds+Notice: Compiled catalog for ubuntu-xenial in environment pbg in 0.98 seconds
 Notice: /Stage[main]/Apache/Package[httpd]/ensure: created Notice: /Stage[main]/Apache/Package[httpd]/ensure: created
 Notice: /Stage[main]/Apache/Exec[mkdir /etc/apache2/conf.d]/returns: executed successfully Notice: /Stage[main]/Apache/Exec[mkdir /etc/apache2/conf.d]/returns: executed successfully
-Notice: /Stage[main]/Apache/File[/etc/apache2/sites-available/000-default.conf]/ensure: removed +...
-Notice: /Stage[main]/Apache/File[/etc/apache2/sites-available/default-ssl.conf]/ensure: removed +
-Notice: /Stage[main]/Apache/File[/etc/apache2/sites-enabled/000-default.conf]/ensure: removed +
-Notice: /Stage[main]/Apache::Mod::Reqtimeout/File[reqtimeout.conf]/content: content changed '{md5}40b45155afb3d14263d12e6fc4a98513' to '{md5}81c51851ab7ee7942bef389dc7c0e985' +
-Notice: /Stage[main]/Apache::Mod::Alias/File[alias.conf]/content: content changed '{md5}c6e9f26152898c38e58211c8b362d5c3' to '{md5}cb528041df274fb077800a8e2e64f94e' +
-Notice: /Stage[main]/Apache::Mod::Autoindex/File[autoindex.conf]/content: content changed '{md5}bfba7d77669e02b869b92e98215d58fc' to '{md5}2421a3c6df32c7e38c2a7a22afdf5728' +
-Notice: /Stage[main]/Apache::Mod::Deflate/File[deflate.conf]/content: content changed '{md5}6649a32153b9afdc53f6898b5a10a2d6' to '{md5}a045d750d819b1e9dae3fbfb3f20edd5' +
-Notice: /Stage[main]/Apache::Mod::Dir/File[dir.conf]/content: content changed '{md5}fe4bc5fa3b3cc7a241fe57f8fabc55a1' to '{md5}c741d8ea840e6eb999d739eed47c69d7' +
-Notice: /Stage[main]/Apache::Mod::Mime/File[mime.conf]/content: content changed '{md5}7369c2fd5edf2192edbd6d865b632ae5' to '{md5}9da85e58f3bd6c780ce76db603b7f028' +
-Notice: /Stage[main]/Apache::Mod::Negotiation/File[negotiation.conf]/content: content changed '{md5}443398efdd41085bc1a70047f6e61c95' to '{md5}47284b5580b986a6ba32580b6ffb9fd7' +
-Notice: /Stage[main]/Apache::Mod::Setenvif/File[setenvif.conf]/content: content changed '{md5}533f5f92761c2c24d6820f1d7d1c45ad' to '{md5}c7ede4173da1915b7ec088201f030c28' +
-Notice: /Stage[main]/Apache::Mod::Worker/File[/etc/apache2/mods-available/worker.conf]/ensure: defined content as '{md5}1e3caf54ba0d71f3502b6cce6cda38d8' +
-Notice: /Stage[main]/Apache/Concat[/etc/apache2/ports.conf]/File[/etc/apache2/ports.conf]/content: content changed '{md5}a961f23471d985c2b819b652b7f64321' to '{md5}334fa5cddbf9a408ea1ca7a1666b1fc4' +
-Notice: /Stage[main]/Apache/File[/etc/apache2/apache2.conf]/content: content changed '{md5}da32fcc6a783acaebf0d74c17c726bf7' to '{md5}f0bb70225191ce965d8c3e8ae992ba4c' +
-Notice: /Stage[main]/Apache::Default_mods/Apache::Mod[authz_host]/File[authz_host.load]/content: content changed '{md5}f529587409471e3feb62256bccaf538a' to '{md5}4b8162e3e3a58d1dc2222e2ad352bd93' +
-Notice: /Stage[main]/Apache::Default_mods/Apache::Mod[authz_host]/File[authz_host.load symlink]/target: target changed '../mods-available/authz_host.load' to '/etc/apache2/mods-available/authz_host.load' +
-Notice: /Stage[main]/Apache::Mod::Authn_core/Apache::Mod[authn_core]/File[authn_core.load symlink]/target: target changed '../mods-available/authn_core.load' to '/etc/apache2/mods-available/authn_core.load' +
-Notice: /Stage[main]/Apache::Mod::Reqtimeout/Apache::Mod[reqtimeout]/File[reqtimeout.load symlink]/ensure: created +
-Notice: /Stage[main]/Apache::Mod::Reqtimeout/Apache::Mod[reqtimeout]/File[reqtimeout.conf symlink]/ensure: created +
-Notice: /Stage[main]/Apache::Mod::Alias/Apache::Mod[alias]/File[alias.load symlink]/target: target changed '../mods-available/alias.load' to '/etc/apache2/mods-available/alias.load' +
-Notice: /Stage[main]/Apache::Mod::Alias/Apache::Mod[alias]/File[alias.conf symlink]/target: target changed '../mods-available/alias.conf' to '/etc/apache2/mods-available/alias.conf' +
-Notice: /Stage[main]/Apache::Mod::Authn_file/Apache::Mod[authn_file]/File[authn_file.load symlink]/target: target changed '../mods-available/authn_file.load' to '/etc/apache2/mods-available/authn_file.load' +
-Notice: /Stage[main]/Apache::Mod::Autoindex/Apache::Mod[autoindex]/File[autoindex.load symlink]/target: target changed '../mods-available/autoindex.load' to '/etc/apache2/mods-available/autoindex.load' +
-Notice: /Stage[main]/Apache::Mod::Autoindex/Apache::Mod[autoindex]/File[autoindex.conf symlink]/target: target changed '../mods-available/autoindex.conf' to '/etc/apache2/mods-available/autoindex.conf' +
-Notice: /Stage[main]/Apache::Mod::Dav/Apache::Mod[dav]/File[dav.load symlink]/ensure: created +
-Notice: /Stage[main]/Apache::Mod::Dav_fs/File[dav_fs.conf]/content: content changed '{md5}162db96239f13b5416f369b6306d9db6' to '{md5}e36e2951cff0d4df331652ca6fccdb77' +
-Notice: /Stage[main]/Apache::Mod::Dav_fs/Apache::Mod[dav_fs]/File[dav_fs.load]/content: content changed '{md5}17f662fd023dbaaab9d89f9a11ae58c1' to '{md5}3fa14d6e9f9d8eb25d09ed4823508f6d' +
-Notice: /Stage[main]/Apache::Mod::Dav_fs/Apache::Mod[dav_fs]/File[dav_fs.load symlink]/ensure: created +
-Notice: /Stage[main]/Apache::Mod::Dav_fs/Apache::Mod[dav_fs]/File[dav_fs.conf symlink]/ensure: created +
-Notice: /Stage[main]/Apache::Mod::Deflate/Apache::Mod[deflate]/File[deflate.load]/content: content changed '{md5}6a7a23153796456ee919abdf728fd972' to '{md5}ac4540dd672556b07f900425751f745c' +
-Notice: /Stage[main]/Apache::Mod::Deflate/Apache::Mod[deflate]/File[deflate.load symlink]/target: target changed '../mods-available/deflate.load' to '/etc/apache2/mods-available/deflate.load' +
-Notice: /Stage[main]/Apache::Mod::Deflate/Apache::Mod[deflate]/File[deflate.conf symlink]/target: target changed '../mods-available/deflate.conf' to '/etc/apache2/mods-available/deflate.conf' +
-Notice: /Stage[main]/Apache::Mod::Dir/Apache::Mod[dir]/File[dir.load symlink]/target: target changed '../mods-available/dir.load' to '/etc/apache2/mods-available/dir.load' +
-Notice: /Stage[main]/Apache::Mod::Dir/Apache::Mod[dir]/File[dir.conf symlink]/target: target changed '../mods-available/dir.conf' to '/etc/apache2/mods-available/dir.conf' +
-Notice: /Stage[main]/Apache::Mod::Mime/Apache::Mod[mime]/File[mime.load symlink]/target: target changed '../mods-available/mime.load' to '/etc/apache2/mods-available/mime.load' +
-Notice: /Stage[main]/Apache::Mod::Mime/Apache::Mod[mime]/File[mime.conf symlink]/target: target changed '../mods-available/mime.conf' to '/etc/apache2/mods-available/mime.conf' +
-Notice: /Stage[main]/Apache::Mod::Negotiation/Apache::Mod[negotiation]/File[negotiation.load symlink]/target: target changed '../mods-available/negotiation.load' to '/etc/apache2/mods-available/negotiation.load' +
-Notice: /Stage[main]/Apache::Mod::Negotiation/Apache::Mod[negotiation]/File[negotiation.conf symlink]/target: target changed '../mods-available/negotiation.conf' to '/etc/apache2/mods-available/negotiation.conf' +
-Notice: /Stage[main]/Apache::Mod::Setenvif/Apache::Mod[setenvif]/File[setenvif.load symlink]/target: target changed '../mods-available/setenvif.load' to '/etc/apache2/mods-available/setenvif.load' +
-Notice: /Stage[main]/Apache::Mod::Setenvif/Apache::Mod[setenvif]/File[setenvif.conf symlink]/target: target changed '../mods-available/setenvif.conf' to '/etc/apache2/mods-available/setenvif.conf' +
-Notice: /Stage[main]/Apache::Default_mods/Apache::Mod[auth_basic]/File[auth_basic.load]/content: content changed '{md5}a92c34a3ce5e67e2ecbd272155ebe072' to '{md5}5eec35bb52e1ae9ff5eec602ed1d2374' +
-Notice: /Stage[main]/Apache::Default_mods/Apache::Mod[auth_basic]/File[auth_basic.load symlink]/target: target changed '../mods-available/auth_basic.load' to '/etc/apache2/mods-available/auth_basic.load' +
-Notice: /Stage[main]/Apache::Mod::Filter/Apache::Mod[filter]/File[filter.load symlink]/target: target changed '../mods-available/filter.load' to '/etc/apache2/mods-available/filter.load' +
-Notice: /Stage[main]/Apache::Default_mods/Apache::Mod[authz_core]/File[authz_core.load symlink]/target: target changed '../mods-available/authz_core.load' to '/etc/apache2/mods-available/authz_core.load' +
-Notice: /Stage[main]/Apache::Default_mods/Apache::Mod[access_compat]/File[access_compat.load]/content: content changed '{md5}f7f77b3eb4005749b583ff14b49f8bf1' to '{md5}a3e92887d86700b30a3869d0e8c159d7' +
-Notice: /Stage[main]/Apache::Default_mods/Apache::Mod[access_compat]/File[access_compat.load symlink]/target: target changed '../mods-available/access_compat.load' to '/etc/apache2/mods-available/access_compat.load' +
-Notice: /Stage[main]/Apache::Mod::Authz_user/Apache::Mod[authz_user]/File[authz_user.load]/content: content changed '{md5}bcf988f105564ec1e14b78df56a01cd8' to '{md5}69150f8246499e0135580d8cc16eaeab' +
-Notice: /Stage[main]/Apache::Mod::Authz_user/Apache::Mod[authz_user]/File[authz_user.load symlink]/target: target changed '../mods-available/authz_user.load' to '/etc/apache2/mods-available/authz_user.load' +
-Notice: /Stage[main]/Apache::Default_mods/Apache::Mod[authz_groupfile]/File[authz_groupfile.load]/content: content changed '{md5}97a3e14926ce7bf5f2d2a7b93ece648d' to '{md5}bf972e82336c72b20d67d871ef77d4ce' +
-Notice: /Stage[main]/Apache::Default_mods/Apache::Mod[authz_groupfile]/File[authz_groupfile.load symlink]/ensure: created +
-Notice: /Stage[main]/Apache::Mod::Env/Apache::Mod[env]/File[env.load symlink]/target: target changed '../mods-available/env.load' to '/etc/apache2/mods-available/env.load' +
-Notice: /Stage[main]/Apache::Mod::Worker/Apache::Mpm[worker]/File[/etc/apache2/mods-available/worker.load]/ensure: defined content as '{md5}3064ef75f030fbf76986f6f073beb113' +
-Notice: /Stage[main]/Apache::Mod::Worker/Apache::Mpm[worker]/File[/etc/apache2/mods-enabled/worker.conf]/ensure: created +
-Notice: /Stage[main]/Apache::Mod::Worker/Apache::Mpm[worker]/File[/etc/apache2/mods-enabled/worker.load]/ensure: created +
-Notice: /Stage[main]/Apache::Mod::Cgid/File[cgid.conf]/content: content changed '{md5}e8a2836392051bde889cf9c137058273' to '{md5}7dffbb5823bcbb9ab4d3e67ab14d38a0' +
-Notice: /Stage[main]/Apache::Mod::Cgid/Apache::Mod[cgid]/File[cgid.load symlink]/ensure: created +
-Notice: /Stage[main]/Apache::Mod::Cgid/Apache::Mod[cgid]/File[cgid.conf symlink]/ensure: created +
-Notice: /Stage[main]/Apache/File[/etc/apache2/mods-enabled/mpm_event.conf]/ensure: removed +
-Notice: /Stage[main]/Apache/File[/etc/apache2/mods-enabled/mpm_event.load]/ensure: removed +
-Notice: /Stage[main]/Apache/File[/etc/apache2/mods-enabled/status.conf]/ensure: removed +
-Notice: /Stage[main]/Apache/File[/etc/apache2/mods-enabled/status.load]/ensure: removed +
-Notice: /Stage[main]/Main/Apache::Vhost[cat-pictures.com]/File[/var/www/cat-pictures]/ensure: created +
-Notice: /Stage[main]/Main/File[/var/www/cat-pictures/index.html]/ensure: defined content as '{md5}e274bce610d32200bb7256542f720833' +
-Notice: /Stage[main]/Main/Apache::Vhost[cat-pictures.com]/Concat[25-cat-pictures.com.conf]/File[/etc/apache2/sites-available/25-cat-pictures.com.conf]/ensure: defined content as '{md5}3096e79ddd479b5289234df595f43817' +
-Notice: /Stage[main]/Main/Apache::Vhost[cat-pictures.com]/File[25-cat-pictures.com.conf symlink]/ensure: created+
 Notice: /Stage[main]/Apache::Service/Service[httpd]: Triggered 'refresh' from 1 event Notice: /Stage[main]/Apache::Service/Service[httpd]: Triggered 'refresh' from 1 event
-Notice: Applied catalog in 66.04 seconds+Notice: Applied catalog in 8.94 seconds
 </code> </code>
  
Ligne 1635: Ligne 1589:
 </code> </code>
  
-<WRAP center round important 50%+<WRAP center round important> 
-**Important** - La première ressource est de type **file**. Cette ressource crée si necéssaire le répertoire **/var/www/**.+**Important** - La première ressource est de type **file**. Cette ressource crée si nécessaire le répertoire **/var/www/**.
 </WRAP> </WRAP>
  
Ligne 1652: Ligne 1606:
 </file> </file>
  
-<WRAP center round important 50%>+<WRAP center round important>
 **Important** - Le nom de la ressource **/tmp/wordpress.tar.gz** indique le nom et l'emplacement de l'archive téléchargé - **latest.tar.gz**. L'attribut **extract** indique à Puppet d'extraire l'archive dans l'attribut **extract_path**. L'attribut **source** indique à Puppet d'où il faut télécharger l'archive. L'attribut **creates** indique le nom d'un répertoire qui existera une fois l'archive désarchivée. De cette façon si Puppet détecte la présence de ce répertoire il ne procédera pas à l'extraction de l'archive considérant que l'extraction a déjà eu lieu. Dernièrement l'attribut **cleanup** indique à Puppet de supprimer l'archive à la fin du processus. **Important** - Le nom de la ressource **/tmp/wordpress.tar.gz** indique le nom et l'emplacement de l'archive téléchargé - **latest.tar.gz**. L'attribut **extract** indique à Puppet d'extraire l'archive dans l'attribut **extract_path**. L'attribut **source** indique à Puppet d'où il faut télécharger l'archive. L'attribut **creates** indique le nom d'un répertoire qui existera une fois l'archive désarchivée. De cette façon si Puppet détecte la présence de ce répertoire il ne procédera pas à l'extraction de l'archive considérant que l'extraction a déjà eu lieu. Dernièrement l'attribut **cleanup** indique à Puppet de supprimer l'archive à la fin du processus.
 </WRAP> </WRAP>
Ligne 1660: Ligne 1614:
 <code> <code>
 vagrant@ubuntu-xenial:~$ sudo puppet apply --environment=pbg module_archive.pp vagrant@ubuntu-xenial:~$ sudo puppet apply --environment=pbg module_archive.pp
-Notice: Compiled catalog for ubuntu-xenial.ief2i.fr in environment pbg in 0.53 seconds+Notice: Compiled catalog for ubuntu-xenial in environment pbg in 0.07 seconds
 Notice: /Stage[main]/Main/Archive[/tmp/wordpress.tar.gz]/ensure: download archive from https://wordpress.org/latest.tar.gz to /tmp/wordpress.tar.gz and extracted in /var/www with cleanup Notice: /Stage[main]/Main/Archive[/tmp/wordpress.tar.gz]/ensure: download archive from https://wordpress.org/latest.tar.gz to /tmp/wordpress.tar.gz and extracted in /var/www with cleanup
-Notice: Applied catalog in 99.85 seconds+Notice: Applied catalog in 4.44 seconds
 </code> </code>
  
Ligne 1673: Ligne 1627:
  
 ---- ----
-<html> + 
-<DIV ALIGN="CENTER"> +Copyright © 2022 Hugh Norris.
-Copyright © 2020 Hugh Norris.<br><br> +
-</div> +
-</html>+
Menu