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:l130:part6 [2020/04/13 12:57] adminelearning:workbooks:debian:6:avance:l130:part6 [2023/08/25 01:32] (Version actuelle) admin
Ligne 1: Ligne 1:
 ~~PDF:LANDSCAPE~~ ~~PDF:LANDSCAPE~~
  
-Version **2020.01**+Version **2023.01**
  
 Dernière mise-à-jour : ~~LASTMOD~~ Dernière mise-à-jour : ~~LASTMOD~~
  
-======DOF506 Ansible par la Pratique======+======LCF805 Validation de la Formation======
  
-=====Arrêter les Machines Virtuelles non Indisponsables=====+=====Contenu du Module=====
  
-====Formations en FFP====+  * **LCF805 - Validation de la Formation** 
 +    * Contenu du Module 
 +    * Rappel du Programme de la Formation 
 +    * Validation des acquis globale  
 +    * Évaluation de la Formation
  
-Utilisez l'interface graphique de VirtualBox et arrêtez les machines virtuelles **Ansible** et **Windows10**.+=====Rappel du Programme de la Formation=====
  
-Restaurez ensuite les machines virtuelles **Ansible** et **Windows10** vers leurs états d'origine en revenant à **snapshot1**.+  * **LCF800 - Présentation de la Formation**
 +    Prérequis 
 +      Matériel 
 +      Logiciels 
 +      Internet 
 +    Programme de la Formation 
 +    Validation des Prérequis
  
-====Formations en FAD====+  * **LCF801 - Installation d'Ansible**. 
 +    * Qu'est-ce Ansible ? 
 +    * Installation d'Ansible 
 +    * LAB #1 - Configuration de ssh et de sudo 
 +      * 1.1 - ssh 
 +      * 1.2 - sudo
  
-Utilisez les commandes suivantes pour arrêter les machines virtuelles les machines virtuelles **Ansible** et **Windows10** :+  * **LCF802 - Les Commandes ansible, ansible-playbook et ansible-galaxy**. 
 +    * LAB #1 - Débuter avec Ansible 
 +      1.1 - La Commande ansible 
 +    LAB #2 - La Commande ansible-playbook 
 +      2.1 - Playbook Files 
 +      2.2 - Tasks 
 +      2.3 - Handlers 
 +      2.4 - Modules 
 +        * 2.4.1 - Modules pour des Paquets 
 +        * 2.4.2 - Modules pour des Fichiers 
 +        * 2.4.3 - Modules pour le Système 
 +      * 2.5 - Inventory Files 
 +      * 2.6 - Privilèges 
 +        * 2.6.1 - Création de Groupes 
 +    * LAB #3 - La Commande ansible-galaxy 
 +      * 3.1 - Utiliser des Rôles avec un Play Book 
 +      * 3.2 - Ansible Galaxy
  
-<code> +  * **LCF803 - Rôles, Gabarits, Variables et Facts** 
-trainee@ansible:~$ exit +    * LAB #1 - Dépendances de Rôles 
-déconnexion +    * LAB #2 - Utilisation des Gabarits 
-Connection to localhost closed+      * 2.1 - Variables 
-desktop@server16:~$ VBoxManage controlvm Ansible poweroff +      * 2.2 - Gabarits Conditionnels 
-0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100% +      * 2.3 - Boucles 
-desktop@server16:~$ VBoxManage controlvm Windows10 poweroff +      * 2.4 - Macros 
-0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100% +      * 2.5 - Filtres 
-</code>+        * 2.5.1 - Default 
 +        * 2.5.2 - Join 
 +        * 2.5.3 - Map 
 +      * 2.6 - Gabarits Parent - Enfants 
 +        * 2.6.1 - Le Gabarit Parent 
 +        * 2.6.2 - Le Gabarit Enfant 
 +    * LAB #3 - Gestion de la Hiérarchie des Variables 
 +    * LAB #4 - Utilisation des Facts d'Ansible 
 +    * LAB #5 - La Commande ansible-vault 
 +      * 5.1 - Crypter le Fichier 
 +      * 5.2 - Editer le Fichier 
 +      * 5.3 - Décrypter le Fichier 
 +      * 5.4 - Utilisation de Mots de Passe Aléatoires 
 +    * LAB #6 - Ansible par la Pratique 
 +      * 6.1 - Instructions 
 +      * 6.2 - Corrigés
  
-Restaurez l'état d'origine des machines virtuelles :+  * **LCF804 - Utilisation d'Ansible avec Docker et Windows** 
 +    * LAB #1 - Ansible et Docker 
 +      * 1.1 - Présentation de Docker 
 +      * 1.2 - Installer Docker 
 +      * 1.3 - La Connexion à Docker 
 +    * LAB #2 - Préparer Windows 10 
 +      * 2.1 - Mettre à Jour PowerShell et .NET 
 +      * 2.2 - Configurer WinRM 
 +      * 2.3 - Consulter les Informations sur WinRM 
 +      * 2.4 - Créer un Utilisateur Local pour Ansible 
 +    * LAB #3 - Préparer le Contrôleur Ansible 
 +      * 3.1 - Installer pywinrm 
 +      * 3.2 - Tester la Configuration 
 +    * LAB #4 - Travailler avec Ansible et Windows 
 +      * 4.1 - Obtenir les Informations sur Windows10 
 +      * 4.2 - Exécuter une Commande 
 +      * 4.3 - Exécuter un script PowerShell 
 +      * 4.4 - Installer un Logiciel avec Chocolatey 
 +      * 4.5 - Créer un Utilisateur Local
  
-<code> +  * **LCF805 Validation de la Formation**
-desktop@server16:~$ VBoxManage snapshot Ansible restorecurrent +    * Support de Cours 
-Restoring snapshot 'snapshot1' (bf8d10aa-a81c-4d5e-b91e-f853062fa328) +    * Rappel du Programme de la Formation 
-0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100% +    * Validation des acquis globale 
-desktop@server16:~$ VBoxManage snapshot Windows10 restorecurrent +    * Évaluation de la Formation
-Restoring snapshot 'snapshot1' (242b74ad-bf5b-4a1b-ae74-6b7e14ff131d) +
-0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100% +
-</code>+
  
-=====LAB #17 - Automatiser avec Ansible=====+=====Évaluation de la Formation=====
  
-Lancez la machine virtuelle **CentOS_7**+Afin de valider votre formation, veuillez compléter l’Évaluation de la Formation.
  
-Si vous êtes en FAD, utilisez la commande suivante :+-----
  
-<code> +Copyright © 2023 Hugh Norris Document non-contractuelLe programme peut être modifié sans préavis.
-desktop@server16:~$ VBoxManage startvm CentOS_7 --type headless +
-Waiting for VM "CentOS_7" to power on... +
-VM "CentOS_7" has been successfully started. +
-</code> +
- +
-Connectez-vous à la VM en ssh en utilisant **localhost:3022** avec le compte **trainee** et le mot de passe **trainee**. Vous n'avez **PAS** besoin de mettre la machine dans le NatNetwork. La carte réseau **doit** être en **Nat** dans la configuration de VirtualBox. +
- +
-Il vous est demandé d'automatiser avec Ansible : +
- +
-  * l'installation du serveur vsftpd, +
-  * la mise à jour éventuelle de firewalld, +
-  * la création d'une règle dans firewalld pour le trafic vers le serveur vsfptd, +
-  * la création sécurisée de deux comptes ftp : +
-    * user : mike +
-      * mot de passe : toto +
-    * user : bob +
-      * mot de passe : tata +
- +
-Installez donc Ansible à partir des dépôts : +
- +
-<code> +
-[trainee@centos7 ~]$ su - +
-Mot de passe : fenestros +
-Dernière connexion : jeudi 5 septembre 2019 à 18:28:51 CEST sur pts/0 +
- +
-[root@centos7 ~]# yum install ansible +
-</code> +
- +
-Vérifiez ensuite la présence des exécutables : +
- +
-<code> +
-[root@centos7 ~]# which ansible +
-/bin/ansible +
-[root@centos7 ~]# which ansible-playbook +
-/bin/ansible-playbook +
-</code> +
- +
-Afin de vous aider, on vous fournit deux fichiers : +
- +
-<code> +
-[root@centos7 ~]# cat vsftpd.yml +
---- +
-- name: ftp server install +
-  hosts: localhost +
-  gather_facts: no +
-  become: yes +
-  vars_files: +
-    - users.yml +
-  tasks: +
-    - name: latest vsftpd version +
-      yum: +
-        name: vsftpd +
-        state: latest +
-    - name: latest firewalld version +
-        name: firewalld +
-        state: latest +
-    - name: vsftpd +
-      service: +
-        name vsftpd +
-        enabled: true +
-        state: started +
-    - name: firewalld +
-      service: +
-        name: firewalld +
-        enabled: true +
-        state: started +
-    - name: firewalld allows ftp +
-      firewalld: +
-        permanent: yes +
-        immediate: yes +
-        state: enabled +
-    - name: Create_FTP_users +
-      user: +
-        password: "{{ item.password | password_hash(sha512) }}" +
-        with_items: "{{ ftp_users }}" +
-</code> +
- +
-<code> +
-[root@centos7 ~]# ansible-vault view secrets.yml +
-Vault password: fenestros +
-ftp_users: +
- - { username: mike, password: toto } +
- - { username: bob, password: tata } +
-</code> +
- +
-Lors de l'exécution de la commande ansible-playback, vous obtenez le résultat suivant : +
- +
-<code> +
-[root@centos7 ~]# ansible-playbook vsftpd.yml +
- [WARNING]: Could not match supplied host pattern, ignoring: all +
- +
- [WARNING]: provided hosts list is empty, only localhost is available +
- +
-ERROR! Syntax Error while loading YAML. +
- +
- +
-The error appears to have been in '/root/vsftpd.yml': line 14, column 13, but may +
-be elsewhere in the file depending on the exact syntax problem. +
- +
-The offending line appears to be: +
- +
-    - name: latest firewalld version +
-        name: firewalld +
-        ^ here +
- +
-exception type: <class 'yaml.scanner.ScannerError'> +
-exception: mapping values are not allowed in this context +
- in "<unicode string>", line 14, column 13 +
-</code> +
- +
-A vous de jouer ! +
- +
-<ifauth @admin> +
-====Erreur #1==== +
- +
-Editez le fichier **vsftpd.yml** : +
- +
-<code> +
-[root@centos7 ~]# vi vsftpd.yml +
-[root@centos7 ~]# cat vsftpd.yml +
---- +
-- name: ftp server install +
-  hosts: localhost +
-  gather_facts: no +
-  become: yes +
-  vars_files: +
-    - users.yml +
-  tasks: +
-    - name: latest vsftpd version +
-      yum: +
-        name: vsftpd +
-        state: latest +
-    - name: latest firewalld version +
-      yum:   <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<Ajouter yum: +
-        name: firewalld +
-        state: latest +
-    - name: vsftpd +
-      service: +
-        name vsftpd +
-        enabled: true +
-        state: started +
-    - name: firewalld +
-      service: +
-        name: firewalld +
-        enabled: true +
-        state: started +
-    - name: firewalld allows ftp +
-      firewalld: +
-        permanent: yes +
-        immediate: yes +
-        state: enabled +
-    - name: Create_FTP_users +
-      user: +
-        password: "{{ item.password | password_hash(sha512) }}" +
-        with_items: "{{ ftp_users }}" +
-</code> +
- +
-Relancez la commande **ansible-playbook** : +
- +
-<code> +
-[root@centos7 ~]# ansible-playbook vsftpd.yml +
-[WARNING]: provided hosts list is empty, only localhost is available. Note that the implicit localhost does not match 'all' +
-ERROR! Syntax Error while loading YAML. +
-  mapping values are not allowed in this context +
- +
-The error appears to be in '/root/vsftpd.yml': line 20, column 16, but may +
-be elsewhere in the file depending on the exact syntax problem. +
- +
-The offending line appears to be: +
- +
-        name vsftpd +
-        enabled: true +
-               ^ here +
-</code> +
- +
-====Erreur #2==== +
- +
-Editez le fichier **vsftpd.yml** : +
- +
-<code> +
-[root@centos7 ~]# vi vsftpd.yml +
-[root@centos7 ~]# cat vsftpd.yml +
---- +
-- name: ftp server install +
-  hosts: localhost +
-  gather_facts: no +
-  become: yes +
-  vars_files: +
-    - users.yml +
-  tasks: +
-    - name: latest vsftpd version +
-      yum: +
-        name: vsftpd +
-        state: latest +
-    - name: latest firewalld version +
-      yum:   <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<Ajouter yum: +
-        name: firewalld +
-        state: latest +
-    - name: vsftpd +
-      service: +
-        name: vsftpd <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<Ajouter le caractère : après name +
-        enabled: true +
-        state: started +
-    - name: firewalld +
-      service: +
-        name: firewalld +
-        enabled: true +
-        state: started +
-    - name: firewalld allows ftp +
-      firewalld: +
-        permanent: yes +
-        immediate: yes +
-        state: enabled +
-    - name: Create_FTP_users +
-      user: +
-        password: "{{ item.password | password_hash(sha512) }}" +
-        with_items: "{{ ftp_users }}" +
-</code> +
- +
-Relancez la commande **ansible-playbook** : +
- +
-<code> +
-[WARNING]: provided hosts list is empty, only localhost is available. Note that the implicit localhost does not match 'all' +
-ERROR! vars file users.yml was not found +
-Could not find file on the Ansible Controller. +
-If you are using a module and expect the file to exist on the remote, see the remote_src option +
-</code> +
- +
-====Erreur #3==== +
- +
-Créez le fichier **users.yml** : +
- +
-<code> +
-[root@centos7 ~]# vi users.yml +
-[root@centos7 ~]# cat users.yml  +
-ftp_users: +
- - { username: mike, password: toto } +
- - { username: bob, password: tata } +
-</code> +
- +
-Relancez la commande **ansible-playbook** : +
- +
-<code> +
-[root@centos7 ~]# mv user.yml users.yml  +
-[root@centos7 ~]# ansible-playbook vsftpd.yml +
-[WARNING]: provided hosts list is empty, only localhost is available. Note that the implicit localhost does not match 'all' +
- +
-PLAY [ftp server install] *********************************************************************************************************************************************** +
- +
-TASK [latest vsftpd version] ******************************************************************************************************************************************** +
-changed: [localhost] +
- +
-TASK [latest firewalld version] ***************************************************************************************************************************************** +
-changed: [localhost] +
- +
-TASK [vsftpd] *********************************************************************************************************************************************************** +
-changed: [localhost] +
- +
-TASK [firewalld] ******************************************************************************************************************************************************** +
-ok: [localhost] +
- +
-TASK [firewalld allows ftp] ********************************************************************************************************************************************* +
-ok: [localhost] +
- +
-TASK [Create_FTP_users] ************************************************************************************************************************************************* +
-fatal: [localhost]: FAILED! => {"msg": "The task includes an option with an undefined variable. The error was: 'sha512' is undefined\n\nThe error appears to be in '/root/vsftpd.yml': line 32, column 7, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n        state: enabled\n    - name: Create_FTP_users\n      ^ here\n"+
- +
-PLAY RECAP ************************************************************************************************************************************************************** +
-localhost                  : ok=5    changed=3    unreachable=0    failed=1    skipped=0    rescued=0    ignored=0   +
-</code> +
- +
-====Erreurs 4, 5 et 6==== +
- +
-<code> +
-[root@centos7 ~]# vi vsftpd.yml +
-[root@centos7 ~]# cat vsftpd.yml +
---- +
-- name: ftp server install +
-  hosts: localhost +
-  gather_facts: no +
-  become: yes +
-  vars_files: +
-    - users.yml +
-  tasks: +
-    - name: latest vsftpd version +
-      yum: +
-        name: vsftpd +
-        state: latest +
-    - name: latest firewalld version +
-      yum:   <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<Ajouter yum: +
-        name: firewalld +
-        state: latest +
-    - name: vsftpd +
-      service: +
-        name: vsftpd <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<Ajouter le caractère : après name +
-        enabled: true +
-        state: started +
-    - name: firewalld +
-      service: +
-        name: firewalld +
-        enabled: true +
-        state: started +
-    - name: firewalld allows ftp +
-      firewalld: +
-        permanent: yes +
-        immediate: yes +
-        state: enabled +
-    - name: Create_FTP_users +
-      user: +
-        name: "{{ item.username }}"  <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<Ajouter la ligne name: +
-        password: "{{ item.password | password_hash('sha512') }}" <<<<<<<<<<<<Entourer sha512 avec des caractères ' +
-      with_items: "{{ ftp_users }}" <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<Aligner with_items: avec user: +
-</code> +
- +
-Relancez la commande **ansible-playbook** : +
- +
-<code> +
-[WARNING]: provided hosts list is empty, only localhost is available. Note that the implicit localhost does not match 'all' +
-ERROR! vars file users.yml was not found +
-Could not find file on the Ansible Controller. +
-If you are using a module and expect the file to exist on the remote, see the remote_src option +
-</code> +
- +
-Relancez la commande **ansible-playbook** : +
- +
-<code> +
-[root@centos7 ~]# ansible-playbook vsftpd.yml +
-[WARNING]: provided hosts list is empty, only localhost is available. Note that the implicit localhost does not match 'all' +
- +
-PLAY [ftp server install] *********************************************************************************************************************************************** +
- +
-TASK [latest vsftpd version] ******************************************************************************************************************************************** +
-ok: [localhost] +
- +
-TASK [latest firewalld version] ***************************************************************************************************************************************** +
-ok: [localhost] +
- +
-TASK [vsftpd] *********************************************************************************************************************************************************** +
-ok: [localhost] +
- +
-TASK [firewalld] ******************************************************************************************************************************************************** +
-ok: [localhost] +
- +
-TASK [firewalld allows ftp] ********************************************************************************************************************************************* +
-ok: [localhost] +
- +
-TASK [Create_FTP_users] ************************************************************************************************************************************************* +
-changed: [localhost] => (item={u'username': u'mike', u'password': u'toto'}) +
-changed: [localhost] => (item={u'username': u'bob', u'password': u'tata'}) +
- +
-PLAY RECAP ************************************************************************************************************************************************************** +
-localhost                  : ok=6    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   +
-</code> +
- +
-=====Arrêter la Machine Virtuelle===== +
- +
-====Formations en FFP==== +
- +
-Utilisez l'interface graphique de VirtualBox et arrêtez la machine virtuelle **CentOS_7**. +
- +
-Restaurez ensuite la machine virtuelle **CentOS_7** vers son état d'origine en revenant à **snapshot1**. +
- +
-====Formations en FAD==== +
- +
-Utilisez les commandes suivantes pour arrêter la machine virtuelle **CentOS_7** : +
- +
-<code> +
-desktop@server16:~$ VBoxManage controlvm CentOS_7 poweroff +
-0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100% +
-</code> +
- +
-Restaurez l'état d'origine la machine virtuelle **CentOS_7** : +
- +
-<code> +
-desktop@server16:~$ VBoxManage snapshot CentOS_7 restorecurrent +
-Restoring snapshot 'snapshot1' (584b899e-3089-4c1e-82da-3e221a68de9e) +
-0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100% +
-</code> +
- +
-</ifauth> +
- +
------ +
-<html> +
-<div align="center"> +
-Copyright © 2020 Hugh NORRIS +
-</div> +
-</html>+
Menu