2016-09-10 3 views
0

ワーカーノードをマネージャノードに参加させているときに問題が発生しています。しかし、私はクラスタ内のワーカーに参加している間、システムで問題を抱えています。役職のタスクが失敗したdocker swarmノードの参加

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 ':False、u '標準出力': u'SWMTKN-1-34rdkhgb6ij6njvzdnutvbt8ee3crelm5as7dm7c7y7s03nvr3-9m0c8vp9hjb84ne90etapxec5' 、 '_ansible_item_result':真、 'アイテム':u'188.166.17.148' 、u'delta ': u'0:00:00.016042'、U 'cmd':u'docker swarm join-token -q worker '、 u'stderr':u ''、u'rc ':0、'呼び出し ':{' module_name ':u'command'、 u ' module_args ':{u '警告:True、u'executable':なし、u'_uses_shell ': True、u'_raw_params':u'docker swarm joinトークン-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'、 「del」:「0:00:00.060083」、「end」:「2016-09-10 13:42:24.251326」、「失敗しました」、「u'warnings」:[]}]} 188.166.17.148:2377 "true"、 "item": "188.166.17.148"、 "rc":1、 "start": "2016-09-10 13:42:24.191243"、 "stderr": "\"ドッカーswarm は\ \ n \ n使用:docker swarm join [オプション] HOST:PORT \ n \ nノードおよび/またはマネージャとしてswarmをジョインする "、" 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:ワーカージョイントークンを取得します。 シェル:ドッカーswarm join-token -q worker with_items: - "{{groups ['manager']}}" 登録:docker_worker_token –

+0

これは機能します。ありがとうございました –

関連する問題