Ansible - problème avec les variables
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:
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:
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:
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:
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:
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:
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 :)