ProgramingTip

Ansible을 사용하여 원격 명령의 출력 표시

bestdevel 2020. 12. 8. 19:18
반응형

Ansible을 사용하여 원격 명령의 출력 표시


Ansible 역할에서 사용자의 SSH 키를 생성합니다. 그런 다음 다음 화면에 인쇄하고 일시 중지하여 사용자가 다른 곳에 복사하여 등록을 수 있습니다. 지금까지 다음과 같은 것이 있습니다.

- name: Generate SSH keys for vagrant user
  user: name=vagrant generate_ssh_key=yes ssh_key_bits=2048
- name: Show SSH public key
  command: /bin/cat $home_directory/.ssh/id_rsa.pub
- name: Wait for user to copy SSH public key
  pause: prompt="Please add the SSH public key above to your GitHub account"

'Show SSH public key'태스크가 표시됩니다.

TASK: [Show SSH public key] *************************************************** 
changed: [default]

이에 대해 더 나은 방법이 있습니다. 항상 '변경된'상태를 표시한다는 사실이 마음에 들지 않습니다. ansible ( https://github.com/ansible/ansible/pull/2673)에 대한이 pull request를 찾았지만 내 모듈을 작성하지 않고 사용할 수 있는지 확실하지 않습니다.


특정 명령 (예 : 방랑자 등)의 구문에 잘 모르겠지만 일반적으로 ...

Ansible의 (일반적으로 표시되지 않음) JSON 출력을 변수에 등록한 다음 각 변수의 stdout_lines속성 을 표시 합니다.

- name: Generate SSH keys for vagrant user
  user: name=vagrant generate_ssh_key=yes ssh_key_bits=2048
  register: vagrant
- debug: var=vagrant.stdout_lines

- name: Show SSH public key
  command: /bin/cat $home_directory/.ssh/id_rsa.pub
  register: cat
- debug: var=cat.stdout_lines

- name: Wait for user to copy SSH public key
  pause: prompt="Please add the SSH public key above to your GitHub account"
  register: pause
- debug: var=pause.stdout_lines


-v플래그를 ansible-playbook 명령에 전달하면 ansible이 터미널에 출력을 표시합니다.

사용 사례의 경우 가져 오기 모듈을 사용 하여 서버에서 로컬 컴퓨터로 공개 키를 복사 해 볼 수 있습니다. 이렇게하면 파일이 변경 될 때만 "변경됨"상태가 표시됩니다.


인쇄 pubkey및 추가하여 변경 상태를 피하기 changed_when: Falsecat작업 :

- name: Generate SSH keys for vagrant user   
  user: name=vagrant generate_ssh_key=yes ssh_key_bits=2048

- name: Check SSH public key   
  command: /bin/cat $home_directory/.ssh/id_rsa.pub
  register: cat
  changed_when: False

- name: Print SSH public key
  debug: var=cat.stdout

- name: Wait for user to copy SSH public key   
  pause: prompt="Please add the SSH public key above to your GitHub account"

참고 URL : https://stackoverflow.com/questions/18789545/displaying-output-of-a-remote-command-with-ansible

반응형