У меня есть ansible -плеер, который генерирует все элементы, выводимые с удаленного сервера, и сохраняется в переменные с помощью set_fact. я хочу попробовать записать каждый вывод в отдельные файлы, используя модуль копирования с loop
.
set_fact
, который работает для хранения содержимого, но я изо всех сил пытаюсь получить их в модуле copy
, используя l oop.
- name: Playbook to get element details from server
uri:
url: https://10.10.10.19/rest/v1.1/nucli?SetType={{ item }}
body_format: raw
method: GET
headers:
Content-Type: application/xml
Accept: application/xml
Authorization: Bearer password
return_content: yes
register: fileout
with_items:
- My_var1
- My_var2
- My_var3
- My_var4
- set_fact:
My_var1: "{{ fileout.results[0].content }}"
My_var2: "{{ fileout.results[1].content }}"
My_var3: "{{ fileout.results[2].content }}"
My_var4: "{{ fileout.results[3].content }}"
- copy:
content: {{ item }}
dest: "/users/ansible/vars/{{ item }}.txt"
delegate_to: localhost
loop:
- My_var1
- My_var2
- My_var3
- My_var4
Playbook execution:
все шаги выполнены успешно. но в copy
модуль content: {{ item }}
не использует переменные set_fact, вместо этого они просто копируют строку My_var1 ... et c.
Может кто-нибудь помочь мне, как использовать l oop для переменной set_fact имена? Чтобы я мог сохранить содержимое, которое я сохранил из set_fact (example - My_var1: "{{ fileout.results[0].content }}" )
Заранее спасибо.