Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
List 可变变量操作_List_Ansible - Fatal编程技术网

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过滤器。