小编Row*_*ley的帖子

使用with_items迭代并注册

寻找一个问题的帮助我一直在努力几个小时.我想迭代一个列表,运行一个命令,为每个命令注册输出,然后在每个唯一寄存器{{someregister}}上进行调试迭代.stdout

例如,以下代码将吐出 "msg":"1""msg":"2"

---

- hosts: localhost
  gather_facts: false

  vars:
    numbers:
      - name: "first"
        int: "1"
      - name: "second"
        int: "2"

  tasks:

    - name: Register output
      command: "/bin/echo {{ item.int }}"
      register: result
      with_items: "{{ numbers }}"

    - debug: msg={{ item.stdout }}
      with_items: "{{ result.results }}"
Run Code Online (Sandbox Code Playgroud)

但是,如果我尝试在使用with_list命名的寄存器变量中捕获命令的输出,则无法访问列表或其中的元素.例如,将代码稍微改为:

---

- hosts: localhost
  gather_facts: false

  vars:
    numbers:
      - name: "first"
        int: "1"
      - name: "second"
        int: "2"

  tasks:

    - name: Register output
      command: "/bin/echo {{ item.int }}"
      register: "{{ item.name …
Run Code Online (Sandbox Code Playgroud)

ansible ansible-playbook ansible-2.x

13
推荐指数
2
解决办法
4万
查看次数

在Ansible中创建动态列表的正确方法

我正在寻求建议.我有以下代码,动态创建一个列表,然后我可以在模板中使用.

这是我放在一起的测试代码的副本 - 对于实际角色,我刚刚将admins | regex_replace变量添加到j2模板中.

    ---

  - hosts: localhost
    gather_facts: false

    vars:
      # define empty admins var first so ansible doesn't complain
      admins:

      admin_accounts:
      - name: john
        uid: 1000
        group: sysadmin
        shell: /bin/bash
        comment: "Unix Administrator"
      - name: paul
        uid: 1001
        group: sysadmin
        shell: /bin/bash
        comment: "Unix Administrator"
      - name: george
        uid: 1002
        group: sysadmin
        shell: /bin/bash
        comment: "Unix Administrator"
      - name: ringo
        uid: 1003
        group: sysadmin
        shell: /bin/bash
        comment: "Unix Administrator"

    tasks:

      - name: build array of admin …
Run Code Online (Sandbox Code Playgroud)

ansible ansible-playbook ansible-2.x

8
推荐指数
1
解决办法
2万
查看次数

标签 统计

ansible ×2

ansible-2.x ×2

ansible-playbook ×2