Я хочу создать новый список из files
, добавив /auto
и добавив _sw_table
к каждому элементу. Хотя я могу сделать это, явно указав новые строки в качестве аргументов regex_replace
в map
, я хочу добиться того же, используя переменные. Работает следующее:
- hosts: localhost
gather_facts: no
tasks:
- set_fact:
my_lst: []
top_dir: /auto
extra: sw_table
files: ['/etc/passwd', '/etc/group']
- set_fact:
my_lst: "{{ files | map('regex_replace', '(.*)', '/auto\\1_sw_table') | list }}"
- debug: var=my_lst
Вывод:
$ ansible-playbook -i localhost, ./test.yaml
PLAY [localhost] **************************************************************************************************
TASK [set_fact] ***************************************************************************************************
ok: [localhost]
TASK [set_fact] ***************************************************************************************************
ok: [localhost]
TASK [debug] ******************************************************************************************************
ok: [localhost] => {
"my_lst": [
"/auto/etc/passwd_sw_table",
"/auto/etc/group_sw_table"
]
}
Как использовать переменные top_dir
и extra
при вызове map
для получения того же результата?