Bonjour,

je suis un tuto pour apprendre (débuter avec) ansible. J'ai pushé deux playbooks, sans problème particulier, sinon de la typo (corrigé maintenant).

Par contre pour le dernier playbook, le troisième, ça ne passe pas, et je n'arrive pas à trouver comment corriger. J'aimerais bien obtenir de l'aide…

Je poste l'erreur que j'obtiens, puis les fichiers

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
(ansible2.7.10) user-ansible@node-manager:~$ ansible-playbook -i inventaire.ini --user user-ansible --become --ask-become-pass --ask-vault-pass install-mediawiki.yml
SUDO password: 
Vault password: 
 
PLAY [mediaWiki db configuration] *********************************************************************************************************************************************************************************************************************
 
TASK [mediawiki/confdb : mediawiki database] **********************************************************************************************************************************************************************************************************
ok: [bdd2]
 
TASK [mediawiki/confdb : mediawiki user+privileges] ***************************************************************************************************************************************************************************************************
fatal: [bdd2]: FAILED! => {"msg": "The task includes an option with an undefined variable. The error was: 'item' is undefined\n\nThe error appears to have been in '/home/user-ansible/roles/mediawiki/confdb/tasks/main.yml': line 11, column 3, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n#2. Création d'un accès utilisateur et attribution des privilèges sur le base mediawiki\n- name: \"mediawiki user+privileges\"\n  ^ here\n"}
        to retry, use: --limit @/home/user-ansible/install-mediawiki.retry
 
PLAY RECAP ********************************************************************************************************************************************************************************************************************************************
bdd2                       : ok=1    changed=0    unreachable=0    failed=1   
 
(ansible2.7.10) user-ansible@node-manager:~$
J'ai simplement:

node-manager : debian11 - 192.168.0.102
http2 : centos7 - 192.168.0.103
bdd2 : centos7 - 192.168.0.104

J'ai installé ansible dans un environnement de travail python virtuel avec pip.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
(ansible2.7.10) user-ansible@node-manager:~$ tree roles/
roles/
├── apache
│** ├── handlers
│**** └── main.yml
│** └── tasks
│**     ├── main.yml
│**     └── php7-install.yml
├── mariadb
│** └── tasks
│**     └── main.yml
└── mediawiki
    ├── commun
    │** └── defaults
    │**     └── main.yml
    ├── confapache
    │** ├── meta
    │**** └── main.yml
    │** └── tasks
    │**     └── main.yml
    └── confdb
        ├── meta
        │** └── main.yml
        └── tasks
            └── main.yml
 
14 directories, 9 files
Le premier playbook installe un serveur httpd sur le node http2 et le configure OK.
Le second playbook installe un serveur mariadb sur le node bdd2 et le configure OK.

Le troisième playbook, devrait installer Mediawiki (téléchargement de la source, désarchivage sur /var/www/http/ sur le node http2 + configuration de la BD mediawiki sur bdd2), ça coince je ne sais pas pourquoi !

~/roles/mediawiki/confdb/tasks/main.yml (le problème viendrait d'ici selon le message d'erreur, avec 'item')
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
(ansible2.7.10) user-ansible@node-manager:~$ cat ~/roles/mediawiki/confdb/tasks/main.yml 
# ~/roles/mediawiki/confdb/tasks/main.yml
---
 
#1. Installation de la base de données Mediawiki
- name: "mediawiki database"
  mysql_db:
    name: "{{mediawiki_db_name}}"         # => mediawiki
    state: present
 
#2. Création d'un accès utilisateur et attribution des privilèges sur le base mediawiki
- name: "mediawiki user+privileges"
  mysql_user:
    name: "{{mediawiki_db_user}}"
    password: "{{mediawiki_db_password}}"
    priv: "{{mediawiki_db_name}}.*:ALL"   # => mediawiki
    host: "{{item}}"
    state: present
    with_items: "{{groups.apache}}"
~/roles/mediawiki/commun/defaults/main.yml
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
(ansible2.7.10) user-ansible@node-manager:~$ cat ~/roles/mediawiki/commun/defaults/main.yml 
# ~/roles/mediawiki/commun/defaults/main.yml
---
 
# nom de la base de données
mediawiki_db_name: "mediawiki"
 
# nom de l'utilisateur de la base de données et son mot de passe
mediawiki_db_user: "mediawiki"
mediawiki_db_password: !vault |
          $ANSIBLE_VAULT;1.1;AES256
          66356330613535306333666239643764663932353033333662643337386337656662356438376630
          3864323234376537626464363539633861353632613539630a383462623937363638633833653165
          64613564386532663437303438356330306131613339376532396339623264383264383033643362
          6531663330323964650a373038323332626461363463396339363635646432316530346361353061
          6662
 
# nom et mot de passe de l'administrateur Mediawiki
mediawiki_admin_user: "admin"
mediawiki_admin_password: !vault |
          $ANSIBLE_VAULT;1.1;AES256
          66356330613535306333666239643764663932353033333662643337386337656662356438376630
          3864323234376537626464363539633861353632613539630a383462623937363638633833653165
          64613564386532663437303438356330306131613339376532396339623264383264383033643362
          6531663330323964650a373038323332626461363463396339363635646432316530346361353061
          6662
 
# nom du Mediawiki et son titre
mediawiki_name: "mediawiki"
mediawiki_title: "ELS"
 
# l'emplacement du répertoire d'installation de Mediawiki
# => Mediawiki est un site internet…
mediawiki_directory: "/var/www/html/{{mediawiki_name]]"
 
# répertoire de maintenance de mediawiki
mediawiki_maintenance_directory: "{{mediawiki_directory}}/maintenance"
 
# Definie le premier node du groupe mariadb
mediawiki_db_host: "{{groups.db.0}}"
 
# l'url des sources mediawiki
mediawiki_archive_url: "https://releases.wikimedia.org/mediawiki/1.31/mediawiki-1.31.1.tar.gz"
Chacun des fichiers /etc/hosts sont renseignés avec les ip correspondant au nodes…
Parefeu éteint, selinux permissiv.

L'inventaire:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
user-ansible@node-manager:~$ cat inventaire.ini 
[apache]
http2
 
[db]
bdd2
Et finalement le playbook qui n'aboutit pas: install-mediawiki.yml
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
user-ansible@node-manager:~$ cat install-mediawiki.yml 
---
 
- name: "mediaWiki db configuration"
  hosts: db
  gather_facts: no
  tags: [ "mariadb", "mysql" ]
  roles:
    - role: "mediawiki/confdb"
 
- name: "MediaWiki apache configuration"
  hosts: apache
  gather_facts: no
  tags: "apache"
  roles:
    - role: "mediawiki/confapache"
Les mots de passe données dans le tuto sont:
mot de passe sudo: passforce
mot de passe Vault: Ansible2019

Merci pour votre aide