Sehr langsames Konvertieren von Host-Variablen in eine Umgebungsdatei mit Ansible

Sehr langsames Konvertieren von Host-Variablen in eine Umgebungsdatei mit Ansible

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 .envzeilenweise 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 templateModul zu verwenden und eine Jinja2-Datei zu schreiben. Dies ist in der Regel schneller als lineinfilebei der Arbeit mit Schleifen.

verwandte Informationen