![使用 ansible 将主机变量转换为环境文件真的很慢](https://linux22.com/image/768904/%E4%BD%BF%E7%94%A8%20ansible%20%E5%B0%86%E4%B8%BB%E6%9C%BA%E5%8F%98%E9%87%8F%E8%BD%AC%E6%8D%A2%E4%B8%BA%E7%8E%AF%E5%A2%83%E6%96%87%E4%BB%B6%E7%9C%9F%E7%9A%84%E5%BE%88%E6%85%A2.png)
我在 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
处理循环时更快。