Ansibleを使ってCento OS7にgeerlingguy.dockerを使ってdockerがインストール使用したら下記のエラーが出た
$ ansible-playbook --check playbook.yml
...
TASK [geerlingguy.docker : Install Docker.] ***************************************
fatal: [gmovps]: FAILED! => {"changed": false, "msg": "No package matching 'docker-ce' found available, installed or updated", "rc": 126, "results": ["No package matching 'docker-ce' found available, installed or updated"]}
試しに対象のLinuxサーバにsshログインして、yum install docker-ce
していたところ、同じメッセージが出力され、インストールできませんでした。
docker-ceパッケージを持ってくるリポジトリが無いなので、下記の手順で追加するansibleのロールを作成しました。
解決方法
カスタムのroleを追加
docker-ceのリポジトリを追加するために、以下のroleファイルを追加します。
今回、ファイル名はcustom.add-docker-repo/tasks/main.yml
で保存しました。
- name: install yum-utils
yum: name=yum-utils state=present
- name: add docker-ce repo.
shell: "yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo"
args:
chdir: "/etc/yum.repos.d"
creates: docker-ce.repo
playbook.yml
次に、playbook.ymlを下記の内容で作成します。
- hosts: default
become: yes
roles:
- role: custom.add-docker-repo
- role: geerlingguy.docker
セットアップの実行
下記のコマンドで作成したplaybookを実行します。
local-pc$ ansible-playbook playbook.yml
playbookの実行後、対象のサーバにログインしインストールできたか確認します。
local-pc$ ssh target-server
target-server$ docker -v
Docker version 18.09.2, build 6247962
こちらもおススメ