在ansible.builtin.shell时使用delta-in-loop_控件标签
我有如下简单的ansible脚本 我想知道我们是否可以在在ansible.builtin.shell时使用delta-in-loop_控件标签,ansible,Ansible,我有如下简单的ansible脚本 我想知道我们是否可以在循环控制中使用ansible.builtin.shell的delta - hosts: localhost gather_facts: false tasks: - shell: echo {{ item[0] }} {{ item[1] }} {{ item[2] }} with_nested: - ['700', '600'] - ['./5.csv', '5.xlsx']
循环控制中使用ansible.builtin.shell
的delta
- hosts: localhost
gather_facts: false
tasks:
- shell: echo {{ item[0] }} {{ item[1] }} {{ item[2] }}
with_nested:
- ['700', '600']
- ['./5.csv', '5.xlsx']
- [1, 2, 3, 4]
loop_control:
label: cmd-{{ item[0] }}-{{ item[1] }}-{{ item[2] }}-{{ the_delta_variable_produced_by_builtin_shell }}
比如说
-命令:“回送值{{{item}”
寄存器:结果
循环:[A、B、C]
回路控制:
标签:“{result.stdout}”
给予
任务[命令]***************************************************************
已更改:[localhost]=>(项=值\u A)
已更改:[localhost]=>(项=值)
已更改:[localhost]=>(项=值\u C)
例如
-命令:“回送值{{{item}”
寄存器:结果
循环:[A、B、C]
回路控制:
标签:“{result.stdout}”
给予
任务[命令]***************************************************************
已更改:[localhost]=>(项=值\u A)
已更改:[localhost]=>(项=值)
已更改:[localhost]=>(项=值\u C)
代码中的微小更改。注册var并在循环控制中使用:
- hosts: localhost
gather_facts: false
tasks:
- shell: echo {{ item[0] }} {{ item[1] }} {{ item[2] }}
register: result
with_nested:
- ['700', '600']
- ['./5.csv', '5.xlsx']
- [1, 2, 3, 4]
loop_control:
label: cmd-{{ item[0] }}-{{ item[1] }}-{{ item[2] }}-{{ result.delta }}
这将产生您想要的:
TASK [shell] ***************************************************************
changed: [localhost] => (item=cmd-700-./5.csv-1-0:00:00.009238)
changed: [localhost] => (item=cmd-700-./5.csv-2-0:00:00.007542)
changed: [localhost] => (item=cmd-700-./5.csv-3-0:00:00.009125)
changed: [localhost] => (item=cmd-700-./5.csv-4-0:00:00.009306)
changed: [localhost] => (item=cmd-700-5.xlsx-1-0:00:00.007829)
changed: [localhost] => (item=cmd-700-5.xlsx-2-0:00:00.008872)
changed: [localhost] => (item=cmd-700-5.xlsx-3-0:00:00.007578)
changed: [localhost] => (item=cmd-700-5.xlsx-4-0:00:00.007544)
changed: [localhost] => (item=cmd-600-./5.csv-1-0:00:00.007417)
changed: [localhost] => (item=cmd-600-./5.csv-2-0:00:00.008429)
changed: [localhost] => (item=cmd-600-./5.csv-3-0:00:00.007245)
changed: [localhost] => (item=cmd-600-./5.csv-4-0:00:00.007486)
changed: [localhost] => (item=cmd-600-5.xlsx-1-0:00:00.009141)
changed: [localhost] => (item=cmd-600-5.xlsx-2-0:00:00.008052)
changed: [localhost] => (item=cmd-600-5.xlsx-3-0:00:00.008761)
changed: [localhost] => (item=cmd-600-5.xlsx-4-0:00:00.007917)
代码中的微小更改。注册var并在循环控制中使用:
- hosts: localhost
gather_facts: false
tasks:
- shell: echo {{ item[0] }} {{ item[1] }} {{ item[2] }}
register: result
with_nested:
- ['700', '600']
- ['./5.csv', '5.xlsx']
- [1, 2, 3, 4]
loop_control:
label: cmd-{{ item[0] }}-{{ item[1] }}-{{ item[2] }}-{{ result.delta }}
这将产生您想要的:
TASK [shell] ***************************************************************
changed: [localhost] => (item=cmd-700-./5.csv-1-0:00:00.009238)
changed: [localhost] => (item=cmd-700-./5.csv-2-0:00:00.007542)
changed: [localhost] => (item=cmd-700-./5.csv-3-0:00:00.009125)
changed: [localhost] => (item=cmd-700-./5.csv-4-0:00:00.009306)
changed: [localhost] => (item=cmd-700-5.xlsx-1-0:00:00.007829)
changed: [localhost] => (item=cmd-700-5.xlsx-2-0:00:00.008872)
changed: [localhost] => (item=cmd-700-5.xlsx-3-0:00:00.007578)
changed: [localhost] => (item=cmd-700-5.xlsx-4-0:00:00.007544)
changed: [localhost] => (item=cmd-600-./5.csv-1-0:00:00.007417)
changed: [localhost] => (item=cmd-600-./5.csv-2-0:00:00.008429)
changed: [localhost] => (item=cmd-600-./5.csv-3-0:00:00.007245)
changed: [localhost] => (item=cmd-600-./5.csv-4-0:00:00.007486)
changed: [localhost] => (item=cmd-600-5.xlsx-1-0:00:00.009141)
changed: [localhost] => (item=cmd-600-5.xlsx-2-0:00:00.008052)
changed: [localhost] => (item=cmd-600-5.xlsx-3-0:00:00.008761)
changed: [localhost] => (item=cmd-600-5.xlsx-4-0:00:00.007917)
谢谢,它起作用了。更重要的是
- hosts: localhost
gather_facts: false
tasks:
- shell: echo zongzw
register: z
- debug: "msg={{z}}"
- shell: echo {{ item[0] }} {{ item[1] }} {{ item[2] }}
with_nested:
- ['700', '600']
- ['./5.csv', '5.xlsx']
- [1, 2, 3, 4]
loop_control:
label: cmd-{{ item[0] }}-{{ item[1] }}-{{ item[2] }}-{{ result.delta }}
register: result
- debug: "msg={{ result }}"
通过添加-debug:“msg={{result}}”
,它收集并输出从上一步生成的整个结果
TASK [debug] *****************************************************
ok: [localhost] => {
"msg": {
"changed": true,
"msg": "All items completed",
"results": [
{
"ansible_loop_var": "item",
"changed": true,
"cmd": "echo 700 ./5.csv 1",
"delta": "0:00:00.006048",
...
"stderr": "",
"stderr_lines": [],
"stdout": "700 ./5.csv 1",
"stdout_lines": [
"700 ./5.csv 1"
]
},
...
谢谢,它起作用了。更重要的是
- hosts: localhost
gather_facts: false
tasks:
- shell: echo zongzw
register: z
- debug: "msg={{z}}"
- shell: echo {{ item[0] }} {{ item[1] }} {{ item[2] }}
with_nested:
- ['700', '600']
- ['./5.csv', '5.xlsx']
- [1, 2, 3, 4]
loop_control:
label: cmd-{{ item[0] }}-{{ item[1] }}-{{ item[2] }}-{{ result.delta }}
register: result
- debug: "msg={{ result }}"
通过添加-debug:“msg={{result}}”
,它收集并输出从上一步生成的整个结果
TASK [debug] *****************************************************
ok: [localhost] => {
"msg": {
"changed": true,
"msg": "All items completed",
"results": [
{
"ansible_loop_var": "item",
"changed": true,
"cmd": "echo 700 ./5.csv 1",
"delta": "0:00:00.006048",
...
"stderr": "",
"stderr_lines": [],
"stdout": "700 ./5.csv 1",
"stdout_lines": [
"700 ./5.csv 1"
]
},
...
看看答案。如果这不是你想要的,不要评论!取而代之的,是你的问题,并提出它。例如,delta\u var…
来自哪里?嵌套循环对于重现问题是多余的。命令的标签和参数的复杂性也是如此。请参见答案。如果这不是你想要的,不要评论!取而代之的,是你的问题,并提出它。例如,delta\u var…
来自哪里?嵌套循环对于重现问题是多余的。命令的标签和参数的复杂性也是如此。