[ansible]CentoOS7にgeerlingguy.dockerでdockerがインストールできない

カテゴリ: Ansible

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
こちらもおススメ

コメントを残す

メールアドレスが公開されることはありません。