
Ich habe folgende Aufgabe in Ansible:
- name: Set env vars
lineinfile:
path: "~/.env"
mode: 0600
create: yes
line: "{{ item.key|upper }}=\"{{ item.value }}\""
regexp: "^{{ item.key|upper }}="
loop: "{{ env_file |dict2items }}"
Die Datei wird .env
zeilenweise erstellt, ist aber WIRKLICH langsam. Gibt es einen besseren Weg?
Die .yml-Datei sieht folgendermaßen aus:
env_file:
key1: "value1"
key2: "value2"
Die resultierende Datei hat das Format:
KEY1="value1"
KEY2="value2"
Die Verarbeitung jeder Zeile dauert etwa 20 Sekunden und das summiert sich.
Antwort1
Versuchen Sie, das template
Modul zu verwenden und eine Jinja2-Datei zu schreiben. Dies ist in der Regel schneller als lineinfile
bei der Arbeit mit Schleifen.