使用 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逐行創建文件,但速度非常慢。有沒有更好的辦法?

.yml 檔如下所示:

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

產生的文件格式如下:

KEY1="value1"
KEY2="value2"

每行大約需要 20 秒來處理,加起來確實如此。

答案1

嘗試使用該template模組並編寫 Jinja2 檔案。它往往比lineinfile處理循環時更快。

相關內容