
Tenho a seguinte tarefa no 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 }}"
Está criando o .env
arquivo linha por linha, mas é MUITO lento. Existe uma maneira melhor?
O arquivo .yml se parece com:
env_file:
key1: "value1"
key2: "value2"
O arquivo resultante tem o formato:
KEY1="value1"
KEY2="value2"
Cada linha leva cerca de 20 segundos para ser processada e realmente faz sentido.
Responder1
Tente usar o template
módulo e escrever um arquivo Jinja2. Tende a ser mais rápido do que lineinfile
ao lidar com loops.