Partage
  • Partager sur Facebook
  • Partager sur Twitter

Ansible - Mediawiki - erreur déploiement -cours

FAILED! => {"msg": "The task includes an option with an undefined vari

Sujet résolu
    28 février 2022 à 11:28:42

    Bonjour,

    Je suis le cours sur ansible et en suis au déploiement de Mediawiki via install-mediawiki.yml. Et là ça me pose un problème.

    1) Je commence par décrire mon environnement, ce qui a fonctionné.

    2) Je décris mon problème juste après, un peu plus loin dans le post.

    Le réseau:

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

    /etc/hosts (pour http2 et bdd2):

    [root@http2 ~]# cat /etc/hosts
    …
    
    192.168.0.103 http2
    192.168.0.104 bdd2
    

    Déploiement du serveur http (sur http2) et du serveur mariadb (sur bdd2) - via leur playbook (install-apache.yml , install-mariadb.yml) - PAS DE PROBLÈME :

    (ansible2.7.10) user-ansible@node-manager:~$ ansible-playbook -i inventaire.ini --user user-ansible --become --ask-become-pass install-apache.yml
    SUDO password: 
    
    PLAY [Installation apache] **********************************************************************************************************************************************************************************
    
    TASK [Gathering Facts] **************************************************************************************************************************************************************************************
    ok: [http2]
    
    TASK [apache : apache installation] *************************************************************************************************************************************************************************
    ok: [http2]
    
    TASK [apache : apache service activation] *******************************************************************************************************************************************************************
    ok: [http2]
    
    TASK [apache : epel activation] *****************************************************************************************************************************************************************************
    ok: [http2]
    
    TASK [apache : remi repo activation] ************************************************************************************************************************************************************************
    ok: [http2]
    
    TASK [apache : install php70 packages] **********************************************************************************************************************************************************************
    changed: [http2]
    
    RUNNING HANDLER [apache : apache restart] *******************************************************************************************************************************************************************
    changed: [http2]
    
    PLAY RECAP **************************************************************************************************************************************************************************************************
    http2                      : ok=7    changed=2    unreachable=0    failed=0   
    (ansible2.7.10) user-ansible@node-manager:~$ ansible-playbook -i inventaire.ini --user user-ansible --become --ask-become-pass install-mariadb.yml
    SUDO password: 
    
    PLAY [installation mariaDB] *********************************************************************************************************************************************************************************
    
    TASK [mariadb : mariadb-server installation] ****************************************************************************************************************************************************************
    ok: [bdd2]
    
    TASK [mariadb : start mariadb service] **********************************************************************************************************************************************************************
    ok: [bdd2]
    
    PLAY RECAP **************************************************************************************************************************************************************************************************
    bdd2                       : ok=2    changed=0    unreachable=0    failed=0

    L'arborescence:

    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
    
    user-ansible@node-manager:~$ ls
    ansible2.7.10         install-apache.yml   install-mediawiki.retry  inventaire.ini
    install-apache.retry  install-mariadb.yml  install-mediawiki.yml    roles
    

    Inventaire.ini

    user-ansible@node-manager:~$ cat inventaire.ini 
    [apache]
    http2
    
    [db]
    bdd2
    


    Mon problème: (mot de passe sudo: passforce , mot de passe Vault: Ansible2019 - comme dans le cours…)

    (ansible2.7.10) user-ansible@node-manager:~$ ansible-playbook -i inventaire.ini --user user-ansible --become --ask-become-pass --ask-vault-pass
    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 appe/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 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 

    En plus clair:

    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
    
    The 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.
    
    The offending line appears to be:
    
    #2. Création d'un accès utilisateur et attribution des privilèges sur le base mediawiki
    - name: "mediawiki user+privileges"
      ^ here
      "}
            to retry, use: --limit @/home/user-ansible/install-mediawiki.retry

    J'ai pas mal cherché, je ne sais pas trop comment faire ??


    Voici quelques données supplémentaires:

    le playbook d'installtion du médiawiki

    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"
    
    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}}"
    

    Les variables globales:

    # ~/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"

    TOUS mes fichiers (si nécessaire…):

    https://file.io/W7QBBD1nVT1u

    sinon ici.


    Merci pour votre aide,

    Denebe.


    -
    Edité par DenebeDenebe 28 février 2022 à 15:30:00

    • Partager sur Facebook
    • Partager sur Twitter
      2 mars 2022 à 7:59:15

      Je me réponds: le problème venait de deux espaces de trop dans le fichier au format yaml ~/roles/mediawiki/confdb/tasks/main.yml

      J'ai donc retirer deux espaces devant with_items comme ceci:

      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}}"

      D'autre part j'ai corrigé une erreur de typographie à la ligne 33 dans ~/roles/mediawiki/commun/defaults/main.yml, }} à la place de ]]

      comme ceci:

      mediawiki_directory: "/var/www/html/{{mediawiki_name}}"

      Ça avance, j'ai encore une erreur, mais ça avance:

      (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] ***************************************************************************************************************************************************************************************************
      ok: [bdd2] => (item=['http2'])
      
      PLAY [MediaWiki apache configuration] *****************************************************************************************************************************************************************************************************************
      
      TASK [mediawiki/confapache : mediawiki directory] *****************************************************************************************************************************************************************************************************
      changed: [http2]
      
      TASK [mediawiki/confapache : uncompress mediawiki archive] ********************************************************************************************************************************************************************************************
      changed: [http2]
      
      TASK [mediawiki/confapache : mediawiki configuration] *************************************************************************************************************************************************************************************************
      failed: [http2] (item=['http2']) => {"item": "['http2']", "msg": "Failed to connect to the host via ssh: ssh: Could not resolve hostname ['http2']: Name or service not known", "unreachable": true}
      fatal: [http2]: UNREACHABLE! => {"changed": false, "msg": "All items completed", "results": [{"_ansible_ignore_errors": null, "_ansible_item_label": "['http2']", "_ansible_item_result": true, "item": "['http2']", "msg": "Failed to connect to the host via ssh: ssh: Could not resolve hostname ['http2']: Name or service not known", "unreachable": true}]}
      
      NO MORE HOSTS LEFT ************************************************************************************************************************************************************************************************************************************
              to retry, use: --limit @/home/user-ansible/install-mediawiki.retry
      
      PLAY RECAP ********************************************************************************************************************************************************************************************************************************************
      bdd2                       : ok=2    changed=0    unreachable=0    failed=0   
      http2                      : ok=2    changed=2    unreachable=1    failed=0 



      TASK [mediawiki/confapache : mediawiki configuration] *************************************************************************************************************************************************************************************************
      failed: [http2] (item=['http2']) => {"item": "['http2']", "msg": "Failed to connect to the host via ssh: ssh: Could not resolve hostname ['http2']: Name or service not known", "unreachable": true}
      fatal: [http2]: UNREACHABLE! => {"changed": false, "msg": "All items completed", "results": [{"_ansible_ignore_errors": null, "_ansible_item_label": "['http2']", "_ansible_item_result": true, "item": "['http2']", "msg": "Failed to connect to the h
      ost via ssh: ssh: Could not resolve hostname ['http2']: Name or service not known", "unreachable": true}]}


      Je mets le sujet en resoolu, car il est résolu ! Le problème d'après est différent, j'ai ouvert un autre post…

      -
      Edité par DenebeDenebe 2 mars 2022 à 16:55:51

      • Partager sur Facebook
      • Partager sur Twitter

      Ansible - Mediawiki - erreur déploiement -cours

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown