Ansible の Docker モジュールを使用してプライベート DockerHub リポジトリから Docker イメージをプルする際に問題が発生したため、コードの健全性を確認するために、最初にシェルを使用して問題のイメージをプルすることにしました。これも失敗します。何が起きてる?ボックスに SSH で接続すると、シェルでまったく同じコマンドを実行でき、適切なイメージをプルして機能します。
分離されたプレイ例:
---
- hosts: <host-ip>
gather_facts: True
remote_user: ubuntu
sudo: yes
tasks:
- include_vars: vars/client_vars.yml
- name: Pull stardog docker image [private]
shell: sudo docker pull {{stardog_docker_repo}}
- name: Tag stardog docker image [private]
shell: sudo docker tag {{stardog_docker_repo}} stardog_tag
出力されているエラーは次のとおりです。
failed: [<host-ip>] => {"changed": true, "cmd": "sudo docker pull <org>/<image>:latest", "delta": "0:00:01.395931", "end": "2015-08-05 17:35:22.480811", "rc": 1, "start": "2015-08-05 17:35:21.084880", "warnings": []}
stderr: Error: image <org>/<image>:latest not found
stdout: Pulling repository <org>/<image>
FATAL: all hosts have already failed -- aborting
注意: 私は自分の<org>
and を<image>
サニタイズしましたが、Playbook のイメージ識別子とエラー ログが完全に一致することを保証します。
$ sudo docker pull <org>/<image>:latest
私はさまざまな GitHub の問題 ( Docker モジュールを使用したときに発生したものなど)、ライブラリに関連するパッチなどを認識docker-py
していますが、ここでは Ansibleshell
モジュールを使用しているだけです。私は何を逃したのですか?