Ansible:使用变量构建命令

Ansible: Build Command with variables

我想构建一个 ansible 剧本,此时我需要一些帮助。

我有我的默认值:

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

如何获取所有这些模块并构建我的配置命令?

谢谢!

下图

- 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 适用于 ansible 版本 >= 2.6