2017-12-19 11 views
-1

웹 응용 프로그램을 배포하기 위해 Capistrano에서 Ansible으로 마이그레이션 중입니다. 나는 거의 모든 조리법을 이전 할 수 있었지만 한 가지로 붙어 있습니다.어떻게 원격으로 SSH 쉘을 열 수 있습니까?

cap production ssh을 사용했던 원격 서버에 빠르게 액세스하려면이 명령은 스테이지 구성과 함께 로컬 ssh 명령을 실행합니다. 그렇게하면 팀의 모든 사용자가 필요한 사용자 이름과 호스트 이름을 찾을 필요없이 원격 서버에 신속하게 액세스 할 수 있습니다.

나는 가능성있는 것으로 동일한 일을하려하지만 그것이 가능하다는 것도 확신하지 못합니다. 지금까지 내가 얻은 것은이 오류이다 : Pseudo-terminal will not be allocated because stdin is not a terminal.

내가 사용할 수있는 작업은 다음과 같다.

- name: SSH to host 
    hosts: app 
    gather_facts: no 
    tasks: 
    - command: ssh {{ ansible_user }}@{{ inventory_hostname }} 
     delegate_to: localhost 

아이디어가 있으십니까?

+2

당신이하려는 일을 명확히하십시오. 수행 할 작업이없는 안내서에서 ssh를 실행하는 명령을 사용하는 이유는 무엇입니까? –

+0

가능한 인벤토리 정보를 사용하여 원격 쉘을 여는 명령을 원합니다. 나는 Anabilities가해야 할 일이 아니라는 것을 알고 있습니다. 카피 스트라 노가 한 일도 아닙니다. – Erwan

답변

0

아니요 확실히 할 수 있습니다.
게임 플레이 북으로 대화 형 SSH 연결을 열 수 없습니다. 나는 (AN에는 지정된 포트가 없을 때 경우를 처리 할 수있는 방법을 찾을 수 있습니다

eval $(ansible-inventory --inventory ${INVENTORY_FILE_PATH} --host ${INVENTORY_HOSTNAME} | jq -r '"ssh -p " + (.ansible_port|tostring) + " " + .ansible_user + "@" + .ansible_host') 

:

당신의 필요에 대한 가능한 해결책은 그런 일에 ansible-inventory를 사용하여 목록에서 SSH 정보를 추출하는 것입니다 포트 22으로 대체) 또는 -i 옵션과 함께 사용할 ansible_ssh_private_key_file이있는 경우