如何 运行 ansible task based vaule count condition
How to run ansible task based vaule count condition
我正在尝试根据键中的元素数量创建一个任务。
我的输入将像下面一样 json 输入
"srcaddr": "IP_192.168.10.10, IP_192.168.10.12"
或 json
的数组
"srcaddr": ['IP_192.168.10.10', 'IP_192.168.10.12']
- name: ADD IPv4 IP ADDRESS GROUP
chkr_fwobj_address:
ipv4: "group"
group_name: "ansibleIPv4Group1"
group_members: "{{ srcaddr }}"
adom: "{{ adom }}"
when: "{{ srcaddr |length > 1}}"
我想在元素的个数大于一个时执行上面的任务,超过一个任务将创建一个组并将成员添加到组中。如果我们只有一个元素,那么组创建任务将被忽略
when 条件不应展开。正确的语法是
when: srcaddr|length > 1
下图
- hosts: localhost
vars:
srcaddr1: ['IP_192.168.10.10']
srcaddr2: ['IP_192.168.10.10', 'IP_192.168.10.12']
tasks:
- debug:
msg: There is more then 1 address in the list srcaddr1.
when: srcaddr1|length > 1
- debug:
msg: There is more then 1 address in the list srcaddr2.
when: srcaddr2|length > 1
给出:
PLAY [localhost] *******************************************************
TASK [debug] ***********************************************************
skipping: [localhost]
TASK [debug] **********************************************************
ok: [localhost] => {
"msg": "There is more than 1 address in the list srcaddr2."
}
PLAY RECAP *************************************************************
localhost : ok=1 changed=0 unreachable=0 failed=0
注意:srcaddr: 'IP_192.168.10.10'
的长度是字符串的长度。 srcaddr: [ 'IP_192.168.10.10' ]
的长度是 list.
的长度
我正在尝试根据键中的元素数量创建一个任务。
我的输入将像下面一样 json 输入
"srcaddr": "IP_192.168.10.10, IP_192.168.10.12"
或 json
的数组"srcaddr": ['IP_192.168.10.10', 'IP_192.168.10.12']
- name: ADD IPv4 IP ADDRESS GROUP
chkr_fwobj_address:
ipv4: "group"
group_name: "ansibleIPv4Group1"
group_members: "{{ srcaddr }}"
adom: "{{ adom }}"
when: "{{ srcaddr |length > 1}}"
我想在元素的个数大于一个时执行上面的任务,超过一个任务将创建一个组并将成员添加到组中。如果我们只有一个元素,那么组创建任务将被忽略
when 条件不应展开。正确的语法是
when: srcaddr|length > 1
下图
- hosts: localhost
vars:
srcaddr1: ['IP_192.168.10.10']
srcaddr2: ['IP_192.168.10.10', 'IP_192.168.10.12']
tasks:
- debug:
msg: There is more then 1 address in the list srcaddr1.
when: srcaddr1|length > 1
- debug:
msg: There is more then 1 address in the list srcaddr2.
when: srcaddr2|length > 1
给出:
PLAY [localhost] *******************************************************
TASK [debug] ***********************************************************
skipping: [localhost]
TASK [debug] **********************************************************
ok: [localhost] => {
"msg": "There is more than 1 address in the list srcaddr2."
}
PLAY RECAP *************************************************************
localhost : ok=1 changed=0 unreachable=0 failed=0
注意:srcaddr: 'IP_192.168.10.10'
的长度是字符串的长度。 srcaddr: [ 'IP_192.168.10.10' ]
的长度是 list.