Ansible: команда сборки с переменными

Я хотел бы создать ansible playbook, и на данный момент мне нужна помощь.

У меня есть значения по умолчанию:

variables:
  module1: true
  module2: false
  module3: true
  module4: true

Теперь мне нужно узнать, какой ключ модуля имеет истинное значение, и указать имя ключа в моей команде.

- name: Install Packages
  command: {{ item }}
  with_items:
   - ./configure

Вывод должен быть примерно таким:

- name: Install Packages
  command: {{ item }}
  with_items:
   - ./configure --module1 **--no**-module2 --module3 --module4

Как я могу получить все эти модули и создать команду конфигурации?

Спасибо!


person sokolata    schedule 30.05.2019    source источник
comment
Привет..туалет в ТАК! Всегда полезно указывать доступную версию   -  person error404    schedule 31.05.2019


Ответы (1)


Игра ниже

- hosts: localhost
  gather_facts: no
  vars:
    command: ""
    my_variables:
      module1: true
      module2: false
      module3: true
      module4: true
  tasks:
    - set_fact:
        command: "{{ command ~ item.value|ternary(' --' ~ item.key,
                                                  ' **--no**-' ~ item.key) }}"
      loop: "{{ my_variables|dict2items }}"
    - debug:
        var: command

дает (сокращенно):

"command": " --module4 --module3 **--no**-module2 --module1"

Примечания:

  • dict2items работает с доступной версией >= 2.6
person Vladimir Botka    schedule 31.05.2019
comment
@VladimirBotka Я пропустил материал нет. В следующий раз буду осторожнее :) - person error404; 31.05.2019