1

저는 Mac 머신입니다.가능성있는 플레이 북 [설정] 사실 수집 - SSH UNREACHABLE 배너 연결이 시간 초과되었습니다.

$ which ansible 
/Library/Frameworks/Python.framework/Versions/3.5/bin/ansible 

또는 같아요, ansible는 일반적인 위치에서 찾을 수 있습니다 : /usr/bin/ansible (예를 들면 : CentOS는/우분투).

$ ansible --version 
ansible 2.2.0.0 

다른 재생 목록/우분투 상자에서 다음과 같은 게임 북을 사용할 수 있습니다.

플레이 북 파일은 다음과 같습니다 내 로컬 컴퓨터에서

- hosts: all 
    become: true 
    gather_facts: true 

    roles: 
    - a_role_which_just_say_hello_world_debug_msg 

, 내가 할 수있는 성공적으로 ssh 대상 서버에/(이미 ssh-add를 사용하여 .PEM 키 파일을 추가로 모든 암호없이) 다음과 같은 서버 , 이것은 Aniable playbook의 [Setup] (사실을 수집하는 단계)에서 실패하고 있습니다.

Mac 컴퓨터에서이 오류가 발생하는 경우가 있습니다 (매번). 오류 : Failed to connect to the host via ssh: Connection timed out during banner exchange. 추신 :이 문제는 항상 오지 않습니다.

$ ansible-playbook -i inventory -l tag_cluster_mycluster myplabook.yml 

PLAY [all] ********************************************************************* 

TASK [setup] ******************************************************************* 
ok: [myclusterSomeServer01_i_07f318688f6339971] 
fatal: [myclusterSomeServer02_i_03df6f1f988e665d9]: UNREACHABLE! => {"changed": false, "msg": "Failed to connect to the host via ssh: Connection timed out during banner exchange\r\n", "unreachable": true} 

확인, 15 개 서버 (필자는 MyCluster라는 클러스터에 가지고)는 [SETUP] 설치가 수집 사실의 설치 및 작동이 잘되는 다음 시간 동안 실패에서, 시간의 커플, 같은 동작을 시도했다. 시도

: $ ansible - 각본 -i 재고 -l tag_cluster_mycluster myplabook.yml

PLAY [all] ********************************************************************* 

TASK [setup] ******************************************************************* 
ok: [myclusterSomeServer01_i_07f318688f6339971] 
ok: [myclusterSomeServer02_i_03df6f1f988e665d9] 
ok: [myclusterSomeServer03_i_057dfr56u88e665d9] 
... 
.....more...this time it worked for all servers. 

위에서 보듯이,이 시간은 위의 단계 괜찮 았는데. 일부 작업/작업 중에 동일한 문제 (SSH 연결 시간이 초과되었습니다)가 발생합니다 (여기서 나는 yum을 사용하여 무언가를 설치하려고합니다.) 다시 시도하면 지난 번에 실패한 서버에 대해서는 문제가 없지만 . 성공적인 따라서, 행동이 무작위 마지막 시간이었다 다른 서버 실패

내 /etc/ansible/ansible.cfg 파일이 있습니다.은/etc/ansible에 다음 timeout 설정을 추가

[ssh_connection] 
scp_if_ssh = True 

답변

2

/ansible.cfg 설정 파일이 25로 증가했을 때 작동했습니다. 10 또는 15 일 때 연결 시간 초과 배너 문제로 인해 일부 서버에서 여전히 오류를 보았습니다.

[defaults] 
timeout = 25 

[ssh_connection] 
scp_if_ssh = True 

이 외에도 위에서, 나는 한 번에 N 번호 또는 서버의 비율에 내 작전을 실행하기 (N은 숫자 임), 그때는 괜찮 았는데 serial: N 또는 serial: N% 사용했다.

- hosts: all 
    become: true 
    gather_facts: true 
    serial: 2 
    #serial: "10%" 
    #serial: "{{ serialNumber }}" 
    #serial: "{{ serialNumber }}%" 

    vars: 
    - serialNumber: 5 

    roles: 
    - a_role_which_just_say_hello_world_debug_msg