
У меня есть следующая задача в 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
при работе с циклами.