2017-11-07 8 views
0

shell 모듈을 추가하려면 this solution을, 새로 만든 EC2 인스턴스의 known_hosts 파일에는 ssh-keyscan을 사용하여 키를 추가하려고합니다.쉘 모듈에서 ssh-keyscan을 사용하면 Unable에서 출력이 생성되지 않음

그 질문에 나열된 여러 가지 방법을 시도한 후에 나는 결국 추가하지 않고 shell 모듈을 사용하여 ssh-keyscan 명령을 실행했습니다. 나는이 작업에서 어떤 출력을 얻기하지 오전 : 여기

- name: accept new ssh fingerprints           
    shell: ssh-keyscan -H {{ item.public_ip }} 
    args: 
    executable: /bin/bash  
    with_items: "{{ ec2.instances }}" 
    register: keyscan 
- debug: var=keyscan 

디버그 stderr에서 stdoutstdout_lines 아무것도 및 stderr_lines

주에서 아무것도 보여주지 : 나는 것을 읽은 후 표시된 실행 파일과 bash 이것을 실행 시도 shell 모듈의 기본값은 /bin/sh이며 내 Linux Mint VirtualBox의 dash 셸입니다. 그러나 그것은 상관없이 동일합니다.

나는 다음과 같은 작업과 쉘 명령을 테스트하고 난 stdoutstdout_lines에 적절한 출력을 참조하십시오

- name: test the shell 
    shell: echo hello 
    args: 
    executable: /bin/bash 
    register: hello 
- debug: var=hello 

여기 어떻게 진행되고 있습니까? 터미널에서 (Ansible을 통하지 않고) ssh-keyscan을 실행하면 예상대로 작동합니다.

편집

: 디버그에서 raw_params 출력을 보면ssh-keyscan -H x.x.x.x 및 복사를 보여주고 기대 작품으로 터미널에이 붙여 넣기.

+0

그래서 Ansible이 실행하는 정확한 명령 **은 무엇입니까? 이 정확한 명령을 대화식으로 실행할 때 결과는 무엇입니까? StackOverflow보다 시스템의 부동산을 더 빠르고 쉽게 확인할 수 있습니까? – techraf

+0

'ssh-keyscan -H xxxx'를 실행하는 디버그에서 raw_params 출력을 보았습니다.이 파일을 복사하여 터미널에 붙여 넣어 예상대로 작동 시켰습니다. – darkwing

+0

어쩌면 당신이 보았지만 아무도 그렇게하지 않았을 것입니다. 다른 사람들이 알길 기대합니까? – techraf

답변

0

대답은 첫 번째 시간이 작동하지 않는다는 것입니다. 조사 중 another methodretries 키워드를 우연히 발견하여 명령을 다시 시도 할 수 있습니다. 이 시도하고 재시도 루프에서 2 번 시도에서 작동하고 있습니다.