2017年5月12日金曜日

docker の最新版を CentOS7 にインストールする ansible のレシピ

概要

CentOS7 を構築するたびに docker のインストールを手動で行っていたので ansible のレシピ化をしてみました
別のディストリビューションでの動作やバージョンを指定してのインストールには対応していません

環境

  • CentOS 7.3.1611
  • docker 17.05.0-ce, build 89658be
  • docker-compose 1.12.0
  • ansible 2.3.0.0 (実行側クライアント)

レシピ

  • vim roles/docker/tasks/install.yml
- name: Remove installed docker
  yum:
    name:
      - docker
      - docker-common
      - container-selinux
      - docker-selinux
      - docker-engine
    state: absent
- name: Install yum-utils
  yum:
    name:
      - yum-utils
    state: present
- name: Add docker yum repositry
  command: yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
- name: Enable repo
  command: yum-config-manager --enable docker-ce-edge
- name: Make cache
  command: yum makecache fast
- name: Update
  yum:
    name: '*'
    state: latest
- name: Install newest docker
  yum:
    name:
      - docker-ce

ちなみに docker-compose までインストールしたい場合は以下を追記すれば OK です

- name: Install docker-compose
  shell: "curl -L https://github.com/docker/compose/releases/download/1.12.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose"
- name: Add execution permission
  command: 'sudo chmod +x /usr/local/bin/docker-compose'

という感じのレシピを作成してメイン側の yml ファイルで

---
- hosts: all
  user: root
  roles: 
    - docker

とかすれば OK かなと思います

最後に

CentOS7 に ansible で docker の最新版をインストールする方法を紹介しました
docker のインストール方法は結構変わるのでいずれ使えなくなる可能性がありますが、備忘録として残しておきます

今回のレシピは変数やテンプレートも使っておらずかなりシンプルなレシピになっています
とりあえず動けば的な感じで作ったので command や shell も多用しています

ansible は最新バージョンに追従したりしなきゃいけないので結構メンテナンス大変ですね、、、

0 件のコメント:

コメントを投稿