Я просто изучаю ansible и пытаюсь понять, как я могу включить несколько файлов в путь option
в ansible replace
модуль.
У меня есть три файла, в которых мне нужно заменить a old hostname
с new hostanme
.
Файлы:
- /etc/hosts
- /etc/hosts.custom
- /etc/hosts-backup
Ниже Simple Play отлично работает:
- name: Replace string in hosts file
hosts: all
gather_facts: false
tasks:
- name: Replace string in host file
replace:
path: /etc/hosts
regexp: "171.20.20.16 fostrain.example.com"
replace: "171.20.20.16 dbfoxtrain.example.com"
backup: yes
Однако после большого количества поисковых запросов я вижу это можно сделать следующим образом, но в случае, если у меня несколько файлов, и они должны вызываться как переменные в разных модулях, как мы можем определить их таким образом, чтобы вызывать их по имени переменной.
Ниже показано то, что я пытаюсь понять ..
- name: Replace string in hosts file
hosts: all
gather_facts: false
tasks:
- name: Checking file contents
slurp:
path: "{{ ?? }}" <-- How to check these three files here
register: fileCheck.out
- debug:
msg: "{{ (fileCheck.out.content | b64decode).split('\n') }}"
- name: Replace string in host file
replace:
path: "{{ item.path }}"
regexp: "{{ item:from }}"
replace: "{{ item:to }}"
backup: yes
loop:
- { path: "/etc/hosts", From: "171.20.20.16 fostrain.example.com", To: "171.20.20.16 dbfoxtrain.example.com"}
- { Path: "/etc/hosts.custom", From: "171.20.20.16 fostrain.example.com", To: "171.20.20.16 dbfoxtrain.example.com"}
- { Path: "/etc/hosts-backup", From: "171.20.20.16 fostrain.example.com", To: "171.20.20.16 dbfoxtrain.example.com"}
Буду признателен за любую помощь.