Ansible: как объединить переменную с диапазоном строк - PullRequest
0 голосов
/ 04 октября 2019
- 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_addr - 10.0.0, а ожидаемый вывод - 10.0.0.1, 10.0.0.2, 10.0.0.3, 10.0.0.4, 10.0.0.5

1 Ответ

0 голосов
/ 05 октября 2019

Вы можете сделать это прямо в ваших переменных без необходимости запуска задачи.

Вот самый быстрый пример, который я мог бы придумать:

---
- 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

Возможные дальнейшие чтения:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...