Ansible:如何将变量与字符串的范围连接起来

2024-03-29 12:10:54 发布

您现在位置:Python中文网/ 问答频道 /正文

- hosts:all

  tasks:

  - name: set fact joing the variable and the range of strings
    set_fact:
        exclude_addrs: "{{ split_addr | join('.')[1-5] }}"
    delegate_to: localhost

在我的例子中,split\u addr是10.0.0,我期望的输出是 10.0.0.1、10.0.0.2、10.0.0.3、10.0.0.4、10.0.0.5


Tags: andofthenamerangeallvariabletasks
1条回答
网友
1楼 · 发布于 2024-03-29 12:10:54

您可以直接在vars中执行此操作,而不必运行任务。你知道吗

下面是我能想到的最快的例子:

 -
- hosts: localhost
  gather_facts: false

  vars:
    split_addr: "10.0.0"
    range_length: 5
    exclude_addrs: >-
      {{
        range(1, range_length+1) |
        map('regex_replace', '([0-9]*)', split_addr + '.\1') |
        list
      }}

  tasks:
    - debug:
        var: exclude_addrs

可能的进一步读数:

相关问题 更多 >