Ansible でホスト変数を env ファイルに変換するのが非常に遅い

Ansible でホスト変数を env ファイルに変換するのが非常に遅い

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 }}"

.envファイルを 1 行ずつ作成していますが、非常に遅いです。もっと良い方法はありますか?

.yml ファイルは次のようになります。

env_file:
  key1: "value1"
  key2: "value2"

結果のファイルの形式は次のようになります。

KEY1="value1"
KEY2="value2"

各行の処理には約 20 秒かかり、合計するとかなりの時間がかかります。

答え1

templateモジュールを使用して Jinja2 ファイルを作成してみてください。lineinfileループを処理する場合よりも高速になる傾向があります。

関連情報