commit 787eaa52fc986c07d40478d0fde8455ccf01d0dd Author: Difrex Date: Wed Feb 10 11:06:46 2016 +0300 Docker role for Debian GNU/Linux diff --git a/README.md b/README.md new file mode 100644 index 0000000..2dd0e0e --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +# Ansible roles diff --git a/playbooks/docker.yml b/playbooks/docker.yml new file mode 100644 index 0000000..2b72729 --- /dev/null +++ b/playbooks/docker.yml @@ -0,0 +1,5 @@ +- hosts: docker + sudo: True + gather_facts: True + roles: + - docker diff --git a/roles/docker/handlers/main.yml b/roles/docker/handlers/main.yml new file mode 100644 index 0000000..c0d776e --- /dev/null +++ b/roles/docker/handlers/main.yml @@ -0,0 +1,3 @@ +--- +- name: docker - start and enable + service: name=docker enabled=yes state=restarted diff --git a/roles/docker/meta/main.yml b/roles/docker/meta/main.yml new file mode 100644 index 0000000..3d74043 --- /dev/null +++ b/roles/docker/meta/main.yml @@ -0,0 +1,13 @@ +--- +galaxy_info: + author: Denis Ryabyy , Denis a.k.a Difrex Zheleztsov + description: Ansible role for installing docker for Debian. + min_ansible_version: 1.4 + platforms: + - name: Debian + versions: + - wheezy + - jessie + categories: + - system +dependencies: diff --git a/roles/docker/tasks/docker.yml b/roles/docker/tasks/docker.yml new file mode 100644 index 0000000..3359fba --- /dev/null +++ b/roles/docker/tasks/docker.yml @@ -0,0 +1,28 @@ +--- +- name: Install docker deps + apt: pkg={{item}} + with_items: + - apt-transport-https + - ca-certificates + - bridge-utils + +- name: Remove old apt keys + apt_key: state=absent id={{item}} + with_items: + - D8576A8BA88D21E9 + +- name: Add docker apt key + apt_key: keyserver=hkp://pgp.mit.edu id=58118E89F3A912897C070ADBF76221572C52609D + +- name: Remove old docker repos + apt_repository: repo='deb https://get.docker.com/ubuntu docker main' state=absent + +- name: add docker repo + apt_repository: repo='deb https://apt.dockerproject.org/repo {{ansible_distribution | lower}}-{{ansible_distribution_release}} main' update_cache=yes + +- name: remove old docker package + apt: pkg=lxc-docker state=absent + +- name: install docker + apt: pkg=docker-engine + notify: docker - start and enable diff --git a/roles/docker/tasks/grub.yml b/roles/docker/tasks/grub.yml new file mode 100644 index 0000000..2c1839e --- /dev/null +++ b/roles/docker/tasks/grub.yml @@ -0,0 +1,27 @@ +--- + +- name: Check if cgroup memory and swapaccount in kernel + shell: grep GRUB_CMDLINE_LINUX_DEFAULT /etc/default/grub | grep -c "cgroup_enable=memory swapaccount=1" + register: cgroup_status + ignore_errors: true + +- name: Enable cgroup memory and swapaccount + lineinfile: dest="/etc/default/grub" regexp='GRUB_CMDLINE_LINUX_DEFAULT="(.*)"' line='GRUB_CMDLINE_LINUX_DEFAULT="\1 cgroup_enable=memory swapaccount=1"' backrefs=yes + when: cgroup_status.stdout == "0" + +- name: update-grub + shell: update-grub2 + when: cgroup_status.stdout == "0" + +- name: reboot if we need it + shell: sleep 2 && shutdown -r now "Ansible updates triggered" + async: 1 + poll: 0 + ignore_errors: true + when: cgroup_status.stdout == "0" + +- name: waiting for server to come back + local_action: wait_for host={{ansible_fqdn}} state=started timeout=600 delay=15 + sudo: false + when: cgroup_status.stdout == "0" + diff --git a/roles/docker/tasks/main.yml b/roles/docker/tasks/main.yml new file mode 100644 index 0000000..b0ddf44 --- /dev/null +++ b/roles/docker/tasks/main.yml @@ -0,0 +1,4 @@ +--- +- include: grub.yml + +- include: docker.yml