使用 ansible 将主机变量转换为环境文件真的很慢

使用 ansible 将主机变量转换为环境文件真的很慢

我在 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处理循环时更快。

相关内容