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:l130:part3 [2022/05/20 16:22] – admin | elearning:workbooks:debian:6:avance:l130:part3 [2023/08/25 01:29] (Version actuelle) – admin | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
~~PDF: | ~~PDF: | ||
- | Version - **2022.01** | + | Version - **2023.01** |
Dernière mise-à-jour : ~~LASTMOD~~ | Dernière mise-à-jour : ~~LASTMOD~~ | ||
Ligne 31: | Ligne 31: | ||
* 5.3 - Décrypter le Fichier | * 5.3 - Décrypter le Fichier | ||
* 5.4 - Utilisation de Mots de Passe Aléatoires | * 5.4 - Utilisation de Mots de Passe Aléatoires | ||
- | * LAB #6 - Ansible par la Pratique | ||
- | * 6.1 - Instructions | ||
- | * 6.2 - Corrigés | ||
=====LAB #1 - Dépendances de Rôles===== | =====LAB #1 - Dépendances de Rôles===== | ||
Ligne 2524: | Ligne 2521: | ||
</ | </ | ||
- | =====LAB #6 - Ansible par la Pratique===== | ||
- | |||
- | Connectez-vous à la machine virtuelle **CentOS_7** : | ||
- | |||
- | < | ||
- | trainee@traineeXX: | ||
- | </ | ||
- | |||
- | ====6.1 - Instructions ==== | ||
- | |||
- | Il vous est demandé d' | ||
- | |||
- | * l' | ||
- | * 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 : | ||
- | |||
- | < | ||
- | [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 epel-release | ||
- | [root@centos7 ~]# yum install ansible | ||
- | </ | ||
- | |||
- | Vérifiez ensuite la présence des exécutables : | ||
- | |||
- | < | ||
- | [root@centos7 ~]# which ansible | ||
- | / | ||
- | [root@centos7 ~]# which ansible-playbook | ||
- | / | ||
- | </ | ||
- | |||
- | Afin de vous aider, on vous fournit deux fichiers : | ||
- | |||
- | < | ||
- | [root@centos7 ~]# cat vsftpd.yml | ||
- | --- | ||
- | - name: ftp server install | ||
- | hosts: localhost | ||
- | gather_facts: | ||
- | 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 }}" | ||
- | </ | ||
- | |||
- | < | ||
- | [root@centos7 ~]# ansible-vault view secrets.yml | ||
- | Vault password: fenestros | ||
- | ftp_users: | ||
- | - { username: mike, password: toto } | ||
- | - { username: bob, password: tata } | ||
- | </ | ||
- | |||
- | Lors de l' | ||
- | |||
- | < | ||
- | [root@centos7 ~]# ansible-playbook vsftpd.yml | ||
- | | ||
- | |||
- | | ||
- | |||
- | ERROR! Syntax Error while loading YAML. | ||
- | |||
- | |||
- | The error appears to have been in '/ | ||
- | 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 ' | ||
- | exception: mapping values are not allowed in this context | ||
- | in "< | ||
- | </ | ||
- | |||
- | A vous de jouer ! | ||
- | |||
- | [isauth account, | ||
- | |||
- | ====6.2 - Corrigés==== | ||
- | |||
- | ===Erreur #1=== | ||
- | |||
- | Éditez le fichier **vsftpd.yml** : | ||
- | |||
- | < | ||
- | [root@centos7 ~]# vi vsftpd.yml | ||
- | [root@centos7 ~]# cat vsftpd.yml | ||
- | --- | ||
- | - name: ftp server install | ||
- | hosts: localhost | ||
- | gather_facts: | ||
- | become: yes | ||
- | vars_files: | ||
- | - users.yml | ||
- | tasks: | ||
- | - name: latest vsftpd version | ||
- | yum: | ||
- | name: vsftpd | ||
- | state: latest | ||
- | - name: latest firewalld version | ||
- | 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 }}" | ||
- | </ | ||
- | |||
- | Relancez la commande **ansible-playbook** : | ||
- | |||
- | < | ||
- | [root@centos7 ~]# ansible-playbook vsftpd.yml | ||
- | [WARNING]: provided hosts list is empty, only localhost is available. Note that the implicit localhost does not match ' | ||
- | ERROR! Syntax Error while loading YAML. | ||
- | mapping values are not allowed in this context | ||
- | |||
- | The error appears to be in '/ | ||
- | be elsewhere in the file depending on the exact syntax problem. | ||
- | |||
- | The offending line appears to be: | ||
- | |||
- | name vsftpd | ||
- | enabled: true | ||
- | ^ here | ||
- | </ | ||
- | |||
- | ===Erreur #2=== | ||
- | |||
- | Editez le fichier **vsftpd.yml** : | ||
- | |||
- | < | ||
- | [root@centos7 ~]# vi vsftpd.yml | ||
- | [root@centos7 ~]# cat vsftpd.yml | ||
- | --- | ||
- | - name: ftp server install | ||
- | hosts: localhost | ||
- | gather_facts: | ||
- | become: yes | ||
- | vars_files: | ||
- | - users.yml | ||
- | tasks: | ||
- | - name: latest vsftpd version | ||
- | yum: | ||
- | name: vsftpd | ||
- | state: latest | ||
- | - name: latest firewalld version | ||
- | 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 }}" | ||
- | </ | ||
- | |||
- | Relancez la commande **ansible-playbook** : | ||
- | |||
- | < | ||
- | [WARNING]: provided hosts list is empty, only localhost is available. Note that the implicit localhost does not match ' | ||
- | 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 | ||
- | </ | ||
- | |||
- | ===Erreur #3=== | ||
- | |||
- | Créez le fichier **users.yml** : | ||
- | |||
- | < | ||
- | [root@centos7 ~]# vi users.yml | ||
- | [root@centos7 ~]# cat users.yml | ||
- | ftp_users: | ||
- | - { username: mike, password: toto } | ||
- | - { username: bob, password: tata } | ||
- | </ | ||
- | |||
- | Relancez la commande **ansible-playbook** : | ||
- | |||
- | < | ||
- | [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 ' | ||
- | |||
- | 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]: | ||
- | |||
- | PLAY RECAP ************************************************************************************************************************************************************** | ||
- | localhost | ||
- | </ | ||
- | |||
- | ===Erreurs 4, 5 et 6=== | ||
- | |||
- | < | ||
- | [root@centos7 ~]# vi vsftpd.yml | ||
- | [root@centos7 ~]# cat vsftpd.yml | ||
- | --- | ||
- | - name: ftp server install | ||
- | hosts: localhost | ||
- | gather_facts: | ||
- | become: yes | ||
- | vars_files: | ||
- | - users.yml | ||
- | tasks: | ||
- | - name: latest vsftpd version | ||
- | yum: | ||
- | name: vsftpd | ||
- | state: latest | ||
- | - name: latest firewalld version | ||
- | 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: | ||
- | name: "{{ item.username }}" | ||
- | password: "{{ item.password | password_hash(' | ||
- | with_items: "{{ ftp_users }}" <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< | ||
- | </ | ||
- | |||
- | Relancez la commande **ansible-playbook** : | ||
- | |||
- | < | ||
- | [root@centos7 ~]# ansible-playbook vsftpd.yml | ||
- | [WARNING]: provided hosts list is empty, only localhost is available. Note that the implicit localhost does not match ' | ||
- | |||
- | 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' | ||
- | changed: [localhost] => (item={u' | ||
- | |||
- | PLAY RECAP ************************************************************************************************************************************************************** | ||
- | localhost | ||
- | </ | ||
- | |||
- | Crypter le fichier users.yml : | ||
- | |||
- | < | ||
- | [root@centos7 ~]# ansible-vault encrypt users.yml | ||
- | New Vault password: fenestros | ||
- | Confirm New Vault password: fenestros | ||
- | Encryption successful | ||
- | </ | ||
- | |||
- | Consultez le fichier users.yml : | ||
- | |||
- | < | ||
- | [root@centos7 ~]# ansible-vault view users.yml | ||
- | Vault password: | ||
- | ftp_users: | ||
- | - { username: mike, password: toto } | ||
- | - { username: bob, password: tata } | ||
- | |||
- | [root@centos7 ~]# cat users.yml | ||
- | $ANSIBLE_VAULT; | ||
- | 30323061313265353234666230373765333865663061626362646332376639356463623238343166 | ||
- | 3635356261383732373633626230353837393735393933390a323561663963666262343835363166 | ||
- | 61306137383463303138656131626236633935383031323864396164366139323265653732663834 | ||
- | 6130656163356661360a663635333537373961616230353766666130633537323065663161393939 | ||
- | 65353936613539303631373530643536616335356461323735646165616136303839636166663232 | ||
- | 38616133393235636632646461346430373966306463636662333431373936633837616336326461 | ||
- | 38633139616339343865626630333531366138313761663330346231333131346535663761396233 | ||
- | 35353036373530323636636335336539616433373461653866316138306632323038626266623264 | ||
- | 6634 | ||
- | </ | ||
- | |||
- | Exécutez le playbook : | ||
- | |||
- | < | ||
- | [root@centos7 ~]# ansible-playbook vsftpd.yml --ask-vault-pass | ||
- | Vault password: fenestros | ||
- | [WARNING]: provided hosts list is empty, only localhost is available. Note that the implicit localhost does not match ' | ||
- | |||
- | 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' | ||
- | changed: [localhost] => (item={u' | ||
- | |||
- | PLAY RECAP **************************************************************************************************************************************************************** | ||
- | localhost | ||
- | </ | ||
- | |||
- | Notez que malgré le fait que le fichier **users.yml** soit crypté, les mots de passe des utilisateurs apparaissent en clair lors de l' | ||
- | |||
- | |||
- | < | ||
- | [root@centos7 ~]# vi vsftpd.yml | ||
- | [root@centos7 ~]# cat vsftpd.yml | ||
- | ... | ||
- | - name: Create_FTP_users | ||
- | user: | ||
- | name: "{{ item.username }}" # pas d' | ||
- | password: "{{ item.password | password_hash(' | ||
- | with_items: "{{ ftp_users }}" # erreur d' | ||
- | no_log: True | ||
- | </ | ||
- | |||
- | De cette façon lors de l' | ||
- | |||
- | < | ||
- | [root@centos7 ~]# ansible-playbook vsftpd.yml --ask-vault-pass | ||
- | Vault password: fenestros | ||
- | [WARNING]: provided hosts list is empty, only localhost is available. Note that the implicit localhost does not match ' | ||
- | ... | ||
- | TASK [Create_FTP_users] *************************************************************************************************************************************************** | ||
- | changed: [localhost] => (item=None) | ||
- | changed: [localhost] => (item=None) | ||
- | |||
- | PLAY RECAP **************************************************************************************************************************************************************** | ||
- | localhost | ||
- | </ | ||
- | |||
- | [/isauth] | ||
----- | ----- | ||
- | Copyright © 2022 Hugh Norris. | + | Copyright © 2023 Hugh Norris. |