즉시 템플릿 출력 캡처

즉시 템플릿 출력 캡처

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

입력이 필요한 명령을 처리하는 올바른 방법 stdin은 다음과 같습니다.예상하다기준 치수.

Ansible을 사용하여 민감한 데이터를 처리하는 올바른 방법은 다음과 같습니다.앤서블 볼트. Ansible이 작업에 정의된 명령을 실행하기 위해 Python 스크립트를 생성하므로 어떤 식으로든 데이터는 파일 시스템에 암호화되지 않은 상태로 유지됩니다.

답변3

여기에 몇 가지 이전 답변을 결합하면 다음과 같은 결과를 얻을 수 있습니다.

- name: run command
  command: "command"
  args:
    stdin: "{{ lookup('template', 'tmpl.j2') }}"

관련 정보