Ansible:带有变量的构建命令

时间:2019-05-30 19:57:27

标签: ansible ansible-template

我想制作一个有趣的剧本,这时我需要一些帮助。

我有默认设置:

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

如何获得所有这些模块并构建我的configure命令?

谢谢!

1 个答案:

答案 0 :(得分:0)

以下播放

- 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