Skip to content

Instantly share code, notes, and snippets.

@kawaz
Created September 21, 2018 02:23
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kawaz/93b56792fc2bb87d016a52f3b0178fb8 to your computer and use it in GitHub Desktop.
Save kawaz/93b56792fc2bb87d016a52f3b0178fb8 to your computer and use it in GitHub Desktop.
Dockerを入れるプレイブック。docker-compose とか最新バージョンを取れるようにした。
- hosts: all
become: yes
tags: docker
tasks:
- name: docker install
block:
- name: install docker
yum: name=docker
- name: enable service (upstart)
service: name=docker state=started enabled=yes
when: ansible_service_mgr == 'upstart'
- name: enable service (systemd)
systemd: name=docker state=started enabled=yes
when: ansible_service_mgr == 'systemd'
- name: install doccker-compose
block:
- name: install docker-compose (stat)
stat:
path: /usr/local/bin/docker-compose
register: docker_compose_stat
- when: not docker_compose_stat.stat.exists
block:
- name: install docker-compose (define asset name)
set_fact:
docker_compose_name: docker-compose-Linux-x86_64
- name: install docker-compose (detect latest)
uri:
url: https://api.github.com/repos/docker/compose/releases/latest
return_content: yes
register: docker_compose_latest
- name: install docker-compose (get sha256)
uri:
url: "https://github.com/docker/compose/releases/download/{{docker_compose_latest.json.name}}/{{docker_compose_name}}.sha256"
return_content: yes
register: docker_compose_sha256
- name: install docker-compose (download)
get_url:
url: "https://github.com/docker/compose/releases/download/{{docker_compose_latest.json.name}}/{{docker_compose_name}}"
checksum: "sha256:{{docker_compose_sha256.content|regex_replace(' .*','')}}"
dest: /usr/local/bin/docker-compose
mode: 0755
- name: install doccker-machine
block:
- name: install docker-machine (stat)
stat:
path: /usr/local/bin/docker-machine
register: docker_machine_stat
- when: not docker_machine_stat.stat.exists
block:
- name: install docker-machine (define asset name)
set_fact:
docker_machine_name: docker-machine-Linux-x86_64
- name: install docker-machine (detect latest)
uri:
url: https://api.github.com/repos/docker/machine/releases/latest
return_content: yes
register: docker_machine_latest
- name: install docker-machine (download)
get_url:
url: "https://github.com/docker/machine/releases/download/{{docker_machine_latest.json.name}}/{{docker_machine_name}}"
dest: /usr/local/bin/docker-machine
mode: 0755
@kawaz
Copy link
Author

kawaz commented Sep 21, 2018

uri モジュールで return_content: yes にすれば大抵のAPIをうまく扱えそうだな。Content-Type に応じて勝手にJSONのパースとかもしてくれるので便利だった。

@kawaz
Copy link
Author

kawaz commented Sep 21, 2018

docker-compose は .sha256 あるのに、docker-machine は無いんだね。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment