Назад | Перейти на главную страницу

Захват вывода шаблона на лету

Мне нужно запустить команду на целевом сервере, который принимает данные только через стандартный ввод. Данные, которые я ему передаю, поступают из файла шаблона и содержат конфиденциальные данные, поэтому я бы предпочел, чтобы они не оставались в файловой системе даже на секунду.

Я пытаюсь найти способ получить вывод задачи шаблона, чтобы передать его команде. Что-то вроде:

- name: generate data
  template:
    src: data.j2
    dest: [I'd rather not have any files written]
  register: myvar

- name: run command
  shell: "command < {{ myvar }}"

Есть ли лучший способ сделать это, не создавая временный файл, передавая его команде и затем стирая его?

Получил ответ от анзиблейных парней:

some_var: "{{ lookup('template', 'tmpl.j2') }}"

Правильный способ обработки команд, требующих ввода от stdin это ожидать модуль.

Правильный способ работы с конфиденциальными данными с помощью Ansible: доступное хранилище. Так или иначе, данные будут находиться в файловой системе в незашифрованном виде, поскольку Ansible создает сценарии Python для выполнения команд, определенных в задачах.