Links related to tag ansible

Ansible undefined variable : les yeux en face des trous

Un petit post vite fait, sur un playbook qui deploie des war pour tomcat , avec une surprise au bout

foxmask@home:~/deploy$ ll
total 24
-rw-rw-r-- 1 foxmask foxmask   22 May  4 09:31 hosts.ini
drwxrwxr-x 4 foxmask foxmask   46 May  4 11:01 hosts_vars
-rw-rw-r-- 1 foxmask foxmask 6629 May  4 15:05 playbook.yml
-rw-rw-r-- 1 foxmask foxmask  849 May  4 15:05 README.md
drwxrwxr-x 4 foxmask foxmask   35 May  3 15:36 roles
$ ansible-playbook --check -i hosts.ini playbook.yml --extra-vars 'delivery_folder=delivery_20220506'

PLAY [all] ******************************************************************************************************************************************************************************************************************************

TASK [Gathering Facts] ******************************************************************************************************************************************************************************************************************
ok: [serverA]

TASK [backup : create lsq backup 202205060710] ******************************************************************************************************************************************************************************************
fatal: [serverA]: FAILED! => {"msg": "The conditional check 'wars' failed. The error was: error while evaluating conditional (wars): {{ lsq.wars }}: 'lsq' is undefined\n\nThe error appears to be in '/home/foxmask/deploy/roles/backup/tasks/main.yml': line 12, column 3, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n\n- name: \"create {{ what }} backup {{ today }}\"\n  ^ here\nWe could be wrong, but this one looks like it might be an issue with\nmissing quotes. Always quote template expression brackets when they\nstart a value. For instance:\n\n    with_items:\n      - {{ foo }}\n\nShould be written as:\n\n    with_items:\n      - \"{{ foo }}\"\n"}


PLAY RECAP ******************************************************************************************************************************************************************************************************************************
serverA             : ok=1    changed=0    unreachable=0    failed=1    skipped=0    rescued=0    ignored=0

Pourtant en vérifiant dans hosts_vars/serverA/vars.yml on trouve bien la variable ourself

---

lsq:
  wars:
    - portal
    - admin

dans le playbook.yml on a

    # BACKUP
    - name: "backup date"
      ansible.builtin.command: date +%Y%m%d%H%M
      register: date
      check_mode: no
      tags:
        - backup
        - lsq


    - name: backup lsq
      include_role:
        name: backup
      vars:
        what: lsq
        wars: "{{ lsq.wars }}"
        tomcat_root: "{{ tomcat_home }}"
        today: "{{ date.stdout }}"
      tags:
        - backup
        - lsq

Donc rien d'extraordinaire, définition d'une variable pour récupérer la date du jour puis la tâche suivante appelle un rôle en passant en parm les variables définies dans hosts_vars/serverA/vars.yml

Pour arriver à mes fins et trouver la source du problème j'ai donc décidé, bon gré mal gré, de définir les variables dans playbook.yml et là ca marchait !

Après une grosse digestion, et en nettoyant mes lunettes... j'ai mis le doigt sur l'origine du pb de ansible.

foxmask@home:~/deploy $ ll
total 24
-rw-rw-r-- 1 foxmask foxmask   22 May  4 09:31 hosts.ini
drwxrwxr-x 4 foxmask foxmask   46 May  4 11:01 hosts_vars        <<<<<<<<<<<<<<<<< !!!!!!!!!!! le dossier doit s'appeler host_vars ...
-rw-rw-r-- 1 foxmask foxmask 6629 May  4 15:05 playbook.yml
-rw-rw-r-- 1 foxmask foxmask  849 May  4 15:05 README.md
drwxrwxr-x 4 foxmask foxmask   35 May  3 15:36 roles

et tout rentre dans l'ordre :)

$ ansible-playbook --check -i hosts.ini playbook.yml --extra-vars 'delivery_folder=delivery_20220506'

TASK [Gathering Facts] ******************************************************************************************************************************************************************************************************************
ok: [serverA]

TASK [backup : create lsq backup 202205060710] ******************************************************************************************************************************************************************************************
ok: [serverA]

PLAY RECAP ******************************************************************************************************************************************************************************************************************************
serverA             : ok=2    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0

tjs ce fameux probleme de layer8 ;)