ansible playbook несколько, когда условие с опцией включения - PullRequest
0 голосов
/ 09 марта 2020

Я создаю игровую книгу, в которой я беру информацию от пользователя, какую версию программного обеспечения необходимо загрузить в качестве входных данных, и перехожу к tasks / main.yml

ansible-playbook -i inventory.txt --extra-vars 'git_version=2.7.1'

tasks / main. yml:

---
  - name: git
    include: ../../deploy/templates/git/git.yml
    when: git_version == "1.7.4" or
          git_version == "2.7.1" 

  - name: ant
    include: ../../deploy/templates/ant/ant.yml
    when: ant_version == "1.10.3" or
          ant_version == "1.10.4"

git .yml:


- name: Download Software
  get_url:
     url: "/Linux/git/{{ git_version }}/git-{{ git_version }}.tar.gz"
     dest: "{{ Tools }}"
     mode: 0755

Так что, когда я запускаю playbook, я получаю ошибку ниже, поскольку проблема синтаксиса, мое требование состоит в том, чтобы принять пользовательский ввод того, какое программное обеспечение ему нужно чтобы загрузить и использовать несколько, когда условие с другой опцией include / import_task для загрузки программного обеспечения

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

    TASK [rtt : Download Software] ********************************************************************************************
    skipping: []

    TASK [rtt : Unarchive software] *******************************************************************************************
    skipping: []

    TASK [rtt : Delete the tar file] ******************************************************************************************
    skipping: []

    TASK [rtt : Download Software] ********************************************************************************************

1 Ответ

0 голосов
/ 10 марта 2020

Насколько мне известно, Ansible не позволяет вам иметь when: условия для неопределенных переменных, за одним исключением:

when: variable_name is defined

Для ваших целей может быть проще просто установите пустые значения по умолчанию, например, создайте defaults/main.yml со следующим содержимым:

---
ant_version: ''
git_version: ''

Это позволяет выполнять роль, и задачи выполняются только тогда, когда пользователь переопределяет переменные по умолчанию (например, когда пользователь добавляет --extra-vars 'git_version=2.7.1' в команда playbook).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...