LINUX.ORG.RU

Как заставить Ansible выводить сообщения об отсутствии переменных?

 ,


0

1

Есть инвентарь, внутри которого прописаны переменные:

---

all:
  vars:

    variable1: "a10"
    variable2: "b20"
    variable3: "{{ nonVariable }}30"

Видно, что для инициализации переменной variable3 нужно существование переменной nonVariable, но она специально не создана.

Что будет происходить если запустить плейбук с использованием такой переменной?
---
- hosts: all
  tasks:

  - name: Переменная variable1
    debug: var=variable1

  - name: Переменная variable3
    debug: var=variable3

А все будет нормально, просто переменная variable3 будет undefined:
TASK [Переменная variable3] *****
ok: [remoteHost] => {
    "variable3": "VARIABLE IS NOT DEFINED!"
}

То есть, не будет предупреждения, что нет переменной nonVariable, просто не будет определена переменная variable3.

А хотелось бы видеть или предупреждение или причину, по которой variable3 было не определено. Как это можно сделать?

★★★★★

Похоже на архитектурное решение именно для debug-модуля. Другие модули, которые уже «делают вещи», выполнение ожидаемо прерывают:

  - name: Создание файла с именем variable3
    file:
     name: '/tmp/{{ variable3 }}'
     state: file
    tags:
      - tmp1
PLAY [all] *******************************************************************************************************************************************

TASK [tmp1 : Переменная variable1] *******************************************************************************************************************
ok: [172.17.13.113] => {
    "variable1": "a10"
}

TASK [tmp1 : Переменная variable3] *******************************************************************************************************************
ok: [172.17.13.113] => {
    "variable3": "VARIABLE IS NOT DEFINED!: 'nonVariable' is undefined"
}

TASK [tmp1 : Создание файла с именем variable3] ******************************************************************************************************
fatal: [172.17.13.113]: FAILED! => {"msg": "The task includes an option with an undefined variable. The error was: 'nonVariable' is undefined\n\nThe error appears to be in '<удалено>/roles/tmp1/tasks/main.yml': line 13, column 5, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n\n  - name: Создание файла с именем variable3\n    ^ here\n"}

PLAY RECAP *******************************************************************************************************************************************
172.17.13.113              : ok=2    changed=0    unreachable=0    failed=1    skipped=0    rescued=0    ignored=0 
NDfan
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.