Рейтинг:1

Действительно медленное преобразование переменных хоста в файл env с помощью ansible

флаг cn

У меня есть следующая задача в ansible:

- имя: установить env vars
  линейный файл:
    путь: "~/.env"
    режим: 0600
    создать: да
    строка: "{{ item.key|upper}}=\"{{ item.value }}\""
    регулярное выражение: "^{{ item.key|upper }}="
  цикл: "{{env_file |dict2items}}"

Это создание .env файл построчно, но это ОЧЕНЬ медленно. Есть ли способ лучше?

Файл .yml выглядит так:

env_file:
  ключ1: "значение1"
  ключ2: "значение2"

Результирующий файл имеет формат:

KEY1="значение1"
KEY2="значение2"

Обработка каждой строки занимает около 20 секунд, и это действительно складывается.

флаг br
Скорее всего, что-то не так с подключением. Чтобы быть уверенным, попробуйте выполнить ту же задачу локально (- hosts: localhost).
флаг cn
@VladimirBotka Я склонен согласиться, или это была какая-то утечка памяти, потому что я перезапустил свою IDE, и весь процесс значительно ускорился. Тем не менее, решение А. Дарвина хорошее, и я тоже им пользуюсь.
Рейтинг:0
флаг my

Попробуйте использовать шаблон модуль и запись файла Jinja2. Он имеет тенденцию быть быстрее, чем линейный файл при работе с петлями.

флаг cn
Спасибо, для удобства других файл jinja2 должен выглядеть так: ` {% для k, v в env_file.items() %} {{ к | верхний }}="{{ v }}" {% конец для %} ` (добавьте соответствующие разрывы строк)

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.