Ansibleのdocker_imageを使用しリモートでコンテナの管理を行いたい
AnsibleでDockerと連携してコンテナの管理を行おうとしています。
その際、docker-pyを使用しイメージを取得しようとしたところでエラーが発生しました。
以下のエラーを解消するにはどうしたらよいでしょうか。
発生している問題・エラーメッセージ
TASK [PUll docker image] ************************************************************ failed: [localhost] (item=<Docker Host IP>:2376) => {"ansible_loop_var": "item", "changed": false, "item": "<Docker Host IP>:2376", "msg": "state is present but all of the following are missing: source"}
該当のソースコード
yml
1--- 2- name: Management Docker 3 # host:ansibleサーバ 4 hosts: localhost 5 vars: 6 docker_hosts: 7 - '<Docker Host IP>:2376' 8 required_docker_images: "ansible/centos7-ansible" 9 tmp_dir: docker_repo 10 11 tasks: 12 ## ユーザ定義ネットワーク作成 13 - name: Create docker local network 14 docker_network: 15 docker_host: "{{ item }}" 16 name: ansible_network 17 with_items: "{{ docker_hosts }}" 18 ## Dockerイメージ取得 19 - name: PUll docker image 20 docker_image: 21 docker_host: "{{ item }}" 22 name: "{{ required_docker_images }}" 23 with_items: "{{ docker_hosts }}" 24 ## Dockerfileの準備 25 - name: Get Nginx Dockerfile 26 git: 27 repo: https://github.com/nginxinc/docker-nginx.git 28 dest: "{{ tmp_dir }}" 29 ## Docker Buildの実行 30 - name: Build Dockerfile 31 docker_image: 32 docker_host: "{{ item }}" 33 path: "{{ tmp_dir}}/stable/stretch" 34 name: nginxinc/docker-nginx 35 tag: v1 36 with_items: "{{ docker_hosts }}" 37 ## Nginx用コンテナの実行 38 - name: Run nginx docker container 39 docker_container: 40 docker_host: "{{ item }}" 41 name: "nginx-1" 42 image: "nginxinc/docker-nginx:v1" 43 networks: 44 - name: ansible_network 45 purge_networks: 8080:80 46 ports: 47 - "8080:80" 48 with_items: "{{ docker_hosts }}" 49 ## Ansible用コンテナの実行 50 - name: Run andible docker containar 51 docker_container: 52 docker_host: "{{ item }}" 53 name: "ansible-1" 54 image: "{{ required_docker_images }}" 55 command: /bin/bash 56 tty: yes 57 interactive: yes 58 with_items: "{{ docker_hosts }}"
試したこと
・ansible-galaxy collection install community.dockerを実行し再度プレイブックを実行
・docker_image→community.docker.docker_imageに変更し実行
どちらもうまく行きませんでした。
補足情報(環境)
OS:EC2(t2.micro)
Ansibleサーバ
$pip list | egrep "pip|awscli|ansible|docker" ansible 3.1.0 ansible-base 2.10.7 awscli 1.19.37 docker-py 1.10.6 docker-pycreds 0.4.0 pip 20.3.4
Docker Host
$ pip list | egrep "pip|awscli|ansible|docker" awscli 1.18.147 docker-py 1.10.6 docker-pycreds 0.4.0 pip 9.0.3
$ docker version Client: Version: 19.03.13-ce API version: 1.40 Go version: go1.13.15 Git commit: 4484c46 Built: Mon Oct 12 18:51:20 2020 OS/Arch: linux/amd64 Experimental: false Server: Engine: Version: 19.03.13-ce API version: 1.40 (minimum version 1.12) Go version: go1.13.15 Git commit: 4484c46 Built: Mon Oct 12 18:51:50 2020 OS/Arch: linux/amd64 Experimental: false containerd: Version: 1.4.1 GitCommit: c623d1b36f09f8ef6536a057bd658b3aa8632828 runc: Version: 1.0.0-rc92 GitCommit: ff819c7e9184c13b7c2607fe6c30ae19403a7aff docker-init: Version: 0.19.0 GitCommit: de40ad0
Docker API使用のため対象行を変更
$ cat /lib/systemd/system/docker.service | grep "ExecStart=/usr/bin/dockerd -H fd://" ExecStart=/usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:2376 --containerd=/run/containerd/containerd.sock $OPTIONS $DOCKER_STORAGE_OPTIONS $DOCKER_ADD_RUNTIMES
マニュアルやエラーについて調べましたが独力では解決には至りませんでした。
お力添えのほどよろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/03/26 13:35
2021/03/26 13:46
2021/03/26 13:50