寻找一个问题的帮助我一直在努力几个小时.我想迭代一个列表,运行一个命令,为每个命令注册输出,然后在每个唯一寄存器{{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) 我正在寻求建议.我有以下代码,动态创建一个列表,然后我可以在模板中使用.
这是我放在一起的测试代码的副本 - 对于实际角色,我刚刚将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)