2016-09-10 2 views
0

관리자 노드와 작업자 노드를 결합하는 동안 문제가 있습니다. 하지만 클러스터에서 작업자와 합류하는 동안 시스템에서 문제가 발생했습니다.docker swarm node join에 실패한 가능한 역할 태스크

docker_worker_token이 다른 호스트로 설정되었습니다.

host1: 
    - name: Get the worker join-token. 
     shell: docker swarm join-token -q worker 
     with_items: 
     - "{{ groups['manager'] }}" 
     register: docker_worker_token 

host2: 

    - name: join node to the cluster 
     shell: docker swarm join --token {{ hostvars[item]['docker_worker_token'] }} {{ managerip }}:2377 
     with_items: 
     - "{{ groups['manager'] }}" 

오류가 아래와 같이 표시됩니다.

실패 : 188.166.30.64 (항목 = 188.166.17.148) => { "변경"참 "cmd를": "고정 표시기 떼 --token 가입 { 'MSG'u'All 상품 완료 됨 ', '변경됨 ':'결과 ': [{u'changed': True, u'end ': u'2016-09-10 13 : 42 : 11.439043', '_ansible_no_log': 거짓 '표준 출력' u'SWMTKN-1-34rdkhgb6ij6njvzdnutvbt8ee3crelm5as7dm7c7y7s03nvr3-9m0c8vp9hjb84ne90etapxec5 ', '_ansible_item_result '사실'항목 'u'188.166.17.148', u'delta ' u'0 : 00 : 00.016042', 유 'cmd': u'docker swarm join-token -q worker ', u'stderr': u '', u'rc ': 0,'호출 ': {'모듈 이름 ': u'command', u ' module_args ': {u 'warn': True, u'executable ': 없음, u'_uses_shell': True, u'_raw_params ': u'docker swarm join-token -q worker', u'removes ': 없음, u'creates' : 없음, u'chdir '없음}}'stdout_lines ' [u'SWMTKN-1-34rdkhgb6ij6njvzdnutvbt8ee3crelm5as7dm7c7y7s03nvr3-9m0c8vp9hjb84ne90etapxec5'] u'start 'u'2016-09-10 13 : 42 : 11.423001' u_warnings : []}]} 188.166.17.148:2377 ","delta ":"0 : 00 : 00.060083 ","end ":"2016-09-10 13 : 42 : 24.251326 " : true, "item": "188.166.17.148", "rc": 1, "start": "2016-09-10 13 : 42 : 24.191243", "stderr": "\"도커 부름 가입 \ 정확히 1 개의 인수가 필요합니다. \ nDocker Swarm Join을 참조하십시오. --help '. \ n \ nUsage : docker swarm join [옵션] HOST : PORT \ n \ n 노드 및/또는 관리자로 군대를 시작하십시오. ", stdout ":" ","stdout_lines ": [], "경고": []}

는 지금은 {{ hostvars[item]['docker_worker_token'] }} 그래서 내가 hostvars에서 토큰 정보를 얻을 수 있습니다 작성하는 방법.

답변

1

출력의 cmd 값은 당신에게 힌트를 제공합니다

{{ hostvars[item]['docker_worker_token'].results[0].stdout }} 

하지만 작업 에서 아무 이유없이 with_items를 사용하는 것이 나는 거의 확실 클러스터과 작업에 노드를 결합, 당신은 docker_worker_token 설정 변하기 쉬운? 따라서 변수에 불필요한 results 레이어가 생깁니다.

+0

'docker_worker_token'이 (가) 다른 호스트로 설정되었습니다. - name : 작업자 조인 토큰을 가져옵니다. 쉘 : 도커 뭉치 토큰 -q 작업자 with_items : - "{{groups [ 'manager']}}" 등록 : docker_worker_token –

+0

작동합니다. 고맙습니다 –

관련 문제