Я пытаюсь загрузить зашифрованный файл Ansible Vault в конфигурационную карту, используя шаблоны jinja2
Тогда вы решаете не ту проблему;позвольте фильтру to_yaml
сделать все, что вам нужно, вместо того, чтобы пытаться перебрать свой путь через него.
- command: cat /tmp/test.yml
register: tmp_test
- set_fact:
cm_skeleton:
apiVersion: v1
data:
kind: ConfigMap
metadata:
name: test
namespace: test-namespace
- copy:
content: >-
{{ cm_skeleton | combine({"data":{"test.yml": tmp_test.stdout}}) | to_yaml }}
dest: /tmp/test.configmap.yml
Если у вас есть другие вещи, которые вы пытаетесь вложить в этот ConfigMap
, хорошо,Вы все еще можете сделать это, но десериализовать в dict
, чтобы вы могли вставить буквальное содержимое test.yml
в dict
и затем повторно сериализовать, используя фильтр to_yaml
:
- set_fact:
cm_skeleton: '{{ lookup("template", "cm.j2") | from_yaml }}'
- copy:
contents: '{{ cm_sketeton | combine({"data"...}) | to_yaml }}'