
stdin을 통해서만 데이터를 받아들이는 대상 서버에서 명령을 실행해야 합니다. 내가 제공하는 데이터는 템플릿 파일에서 나오며 민감한 데이터를 포함하고 있으므로 파일 시스템에 잠시라도 보관하지 않는 것이 좋습니다.
템플릿 작업의 출력을 가져와 명령에 전달할 수 있는 방법을 찾으려고 합니다. 다음과 같은 것 :
- name: generate data
template:
src: data.j2
dest: [I'd rather not have any files written]
register: myvar
- name: run command
shell: "command < {{ myvar }}"
임시 파일을 작성하여 명령에 입력한 다음 삭제하는 것보다 더 나은 방법이 있습니까?
답변1
Ansible 사람들로부터 답변을 받았습니다.
some_var: "{{ lookup('template', 'tmpl.j2') }}"
답변2
답변3
여기에 몇 가지 이전 답변을 결합하면 다음과 같은 결과를 얻을 수 있습니다.
- name: run command
command: "command"
args:
stdin: "{{ lookup('template', 'tmpl.j2') }}"