List 可变变量操作
我的剧本中有一个变量,它有许多值,用逗号分隔。此时,我不确定变量是字符串还是列表。我相信从“[]”下面的输出可以看出一个列表 变量填充List 可变变量操作,list,ansible,List,Ansible,我的剧本中有一个变量,它有许多值,用逗号分隔。此时,我不确定变量是字符串还是列表。我相信从“[]”下面的输出可以看出一个列表 变量填充 -set_fact: snap_master_01: "{{ ec2_snapshot_facts.snapshots | selectattr(tags.HostName, equalto, ICINGA2_MASTER_1.tag_value) | sort(attribute=start_time) | reverse | map(attrib
-set_fact:
snap_master_01: "{{ ec2_snapshot_facts.snapshots |
selectattr(tags.HostName, equalto, ICINGA2_MASTER_1.tag_value) |
sort(attribute=start_time) | reverse | map(attribute=snapshot_id) | list }}"
- name: Print snapshot ID's
debug:
msg:
- "{{ snap_master_01 }}"`
Gives the following output:
`TASK [Print snapshot ID's] ******************************************************************************** ***********************
task path: /home/r_ansible/playbooks/backup_aws.yml:252
ok: [172.16.1.58] => {
"changed": false,
"msg": [
[
"snap-04c88ef6XXXXXXXXX",
"snap-0bd5785fXXXXXXXXX",
"snap-045e0f4bXXXXXXXXX",
"snap-055fda51XXXXXXXXX",
"snap-03759206XXXXXXXXX"
]
]
}`
我想删除最后3个值。在Ansible中实现这一点的最佳方法是什么?要在Ansible中操作列表,可以使用Python
在您的情况下,
snap\u master\u 01[:-3]
将为您提供最后三个元素以外的所有元素。谢谢您的帮助<代码>-name:按COUNT变量剪切列表。set_fact:snap_cut:“{{snap_master_02[COUNT::}}”感谢您的帮助。我试过以下几项,但有个错误<代码>-name:按COUNT变量剪切列表。set_fact:snap_cut:“{snap_master_02[COUNT::}}”但我得到以下错误:致命:[172.16.1.58]:失败!=>{“failed”:true,“msg”:“在({{[snap_master_02][COUNT:}}}上发生意外的模板类型错误):切片索引必须是整数或无或具有{uu index_uu方法”}若要重试,请使用:-limit@/home/r_ansible/playbooks/backup_aws。重试
很抱歉,我超时了5分钟,无法完成最后的评论。使用[COUNT|int:]
。谢谢!!成功了。:-)是否有记录在案的地方?我已经为此挣扎了一天,但我找不到任何东西documentation@alexis类型铸造?是的,请参阅Jinja2过滤器。