Tenho uma resposta de caras ansiosos:
some_var: "{{ lookup('template', 'tmpl.j2') }}"
Eu preciso executar um comando no servidor de destino que aceita dados somente por meio de stdin. Os dados que eu estou alimentando vem de um arquivo de modelo e contém dados sensíveis, então eu prefiro não tê-lo sentado no sistema de arquivos, nem por um segundo.
Estou tentando encontrar uma maneira de capturar a saída de uma tarefa de modelo para poder transmiti-la ao comando. Algo como:
- name: generate data
template:
src: data.j2
dest: [I'd rather not have any files written]
register: myvar
- name: run command
shell: "command < {{ myvar }}"
A melhor maneira de fazer isso não envolve escrever um arquivo temporário, alimentá-lo com o comando e depois apagá-lo?
Tenho uma resposta de caras ansiosos:
some_var: "{{ lookup('template', 'tmpl.j2') }}"
A maneira correta de manipular comandos que precisam de entrada de stdin
é o módulo esperado .
A maneira correta de lidar com dados confidenciais com o Ansible é o cofre ansible . De uma forma ou de outra, os dados ficarão descriptografados no sistema de arquivos, já que o Ansible cria scripts Python para executar os comandos definidos em tarefas.
Tags ansible