
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
ループを処理する場合よりも高速になる傾向があります。