From 9f516e7cc827871e4982b35ec70d743261d95ae1 Mon Sep 17 00:00:00 2001 From: Sreejith Punnapuzha Date: Fri, 20 Mar 2020 08:21:06 -0500 Subject: [PATCH] [#106] Add docker install role This PS adds role which installs docker Change-Id: Icf8e33f36dfc72327255b9949f0efd9f5f5f8b55 Signed-off-by: Sreejith Punnapuzha --- roles/docker-install/defaults/main.yaml | 5 ++ roles/docker-install/tasks/main.yaml | 66 +++++++++++++++++++ .../templates/http-proxy-conf.j2 | 4 ++ roles/docker-install/tests/main.yml | 9 +++ tests/ansible/role-test-runner.yml | 1 + zuul.d/jobs.yaml | 7 ++ zuul.d/project.yaml | 2 + 7 files changed, 94 insertions(+) create mode 100644 roles/docker-install/defaults/main.yaml create mode 100644 roles/docker-install/tasks/main.yaml create mode 100644 roles/docker-install/templates/http-proxy-conf.j2 create mode 100644 roles/docker-install/tests/main.yml diff --git a/roles/docker-install/defaults/main.yaml b/roles/docker-install/defaults/main.yaml new file mode 100644 index 0000000..014c9fa --- /dev/null +++ b/roles/docker-install/defaults/main.yaml @@ -0,0 +1,5 @@ +proxy: + enabled: false + http: + https: + noproxy: diff --git a/roles/docker-install/tasks/main.yaml b/roles/docker-install/tasks/main.yaml new file mode 100644 index 0000000..925cc06 --- /dev/null +++ b/roles/docker-install/tasks/main.yaml @@ -0,0 +1,66 @@ +--- +- name: Ensuring docker and support packages are present + become: true + when: ansible_distribution == 'CentOS' or ansible_distribution == 'Red Hat Enterprise Linux' + yum: + name: + - docker.io + - runc + update_cache: yes + state: present + +- name: Ensuring docker and support packages are present + become: true + when: ansible_distribution == 'Debian' or ansible_distribution == 'Ubuntu' + apt: + name: + - docker.io + - runc + update_cache: yes + state: present + +- name: Ensure docker group exists + group: + name: docker + state: present + +- name: Add user "{{ ansible_user }}" to docker group + become: true + user: + name: "{{ ansible_user }}" + groups: + - docker + append: yes + +- name: Reset ssh connection to add docker group to user + meta: reset_connection + ignore_errors: true + +- block: + - name: Create docker directory + file: + path: /etc/systemd/system/docker.service.d/ + state: directory + mode: '0755' + + - name: Configure proxy for docker if enabled + template: + src: http-proxy-conf.j2 + dest: /etc/systemd/system/docker.service.d/http-proxy.conf + when: proxy.enabled|bool == true + become: true + +- name: Start docker + become: true + systemd: + name: docker + state: restarted + daemon_reload: yes + enabled: true + +- name: Change group ownership on docker sock + become: true + file: + path: /var/run/docker.sock + group: docker + diff --git a/roles/docker-install/templates/http-proxy-conf.j2 b/roles/docker-install/templates/http-proxy-conf.j2 new file mode 100644 index 0000000..90d8e1d --- /dev/null +++ b/roles/docker-install/templates/http-proxy-conf.j2 @@ -0,0 +1,4 @@ +[Service] +Environment="HTTP_PROXY={{ proxy.http }}" +Environment="HTTPS_PROXY={{ proxy.https }}" +Environment="NO_PROXY={{ proxy.noproxy }}" diff --git a/roles/docker-install/tests/main.yml b/roles/docker-install/tests/main.yml new file mode 100644 index 0000000..c95afd8 --- /dev/null +++ b/roles/docker-install/tests/main.yml @@ -0,0 +1,9 @@ +- name: install docker + include_role: + name: docker-install + +- name: check if docker is installed + assert: + that: + - "docker version" + diff --git a/tests/ansible/role-test-runner.yml b/tests/ansible/role-test-runner.yml index 896faec..945c84c 100644 --- a/tests/ansible/role-test-runner.yml +++ b/tests/ansible/role-test-runner.yml @@ -11,6 +11,7 @@ - redfish-emulator - airship-libvirt-gate - http-fileserver + - docker-install - name: run tests against defined roles include_tasks: "../../roles/{{ role_name }}/tests/main.yml" with_items: "{{ test_subject_roles | default(test_subject_roles_default) }}" diff --git a/zuul.d/jobs.yaml b/zuul.d/jobs.yaml index 0fc873a..46d6c07 100644 --- a/zuul.d/jobs.yaml +++ b/zuul.d/jobs.yaml @@ -43,3 +43,10 @@ - airship-libvirt-gate nodeset: ubuntu-single-airship +- job: + name: zuul-airship-roles-test-docker + run: tests/ansible/role-test-runner.yml + vars: + test_subject_roles: + - docker-install + nodeset: ubuntu-single-airship diff --git a/zuul.d/project.yaml b/zuul.d/project.yaml index a46ec00..648d838 100644 --- a/zuul.d/project.yaml +++ b/zuul.d/project.yaml @@ -3,11 +3,13 @@ jobs: - ansible-lint-airship - zuul-airship-roles-test-libvirt + - zuul-airship-roles-test-docker - zuul-airship-roles-test-airship-gate - zuul-airship-roles-fileserver gate: jobs: - ansible-lint-airship - zuul-airship-roles-test-libvirt + - zuul-airship-roles-test-docker - zuul-airship-roles-test-airship-gate - zuul-airship-roles-fileserver