From 63421a34615592e87b1805c934371ecf199b736c Mon Sep 17 00:00:00 2001 From: Jason Rothstein Date: Sun, 20 Dec 2020 17:31:30 -0600 Subject: [PATCH] Enable docker for CentOS >= 7 and Fedora >= 30 --- tasks/main.yml | 87 +++++++++++++++++++++++++++++++++++++++++++++- vars/CentOS-7.yml | 11 ++++++ vars/CentOS-8.yml | 11 ++++++ vars/Fedora-30.yml | 13 +++++++ vars/Fedora-31.yml | 13 +++++++ vars/Fedora-32.yml | 11 ++++++ vars/Fedora-33.yml | 11 ++++++ vars/default.yml | 2 ++ 8 files changed, 158 insertions(+), 1 deletion(-) create mode 100644 vars/CentOS-7.yml create mode 100644 vars/CentOS-8.yml create mode 100644 vars/Fedora-30.yml create mode 100644 vars/Fedora-31.yml create mode 100644 vars/Fedora-32.yml create mode 100644 vars/Fedora-33.yml create mode 100644 vars/default.yml diff --git a/tasks/main.yml b/tasks/main.yml index cf22675..696431b 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -1,2 +1,87 @@ --- -# tasks file for ensure_docker \ No newline at end of file +# tasks file for ensure_docker +- name: 'include variables' + when: + - ansible_system == 'Linux' + include_vars: + file: '{{ lookup("first_found", findme ) }}' + name: 'ensure_docker' + vars: + findme: + files: + - '{{ ansible_distribution }}-{{ ansible_distribution_major_version }}-{{ ansible_architecture }}.yml' + - '{{ ansible_distribution }}-{{ ansible_distribution_major_version }}-default.yml' + - '{{ ansible_distribution }}-default.yml' + - '{{ ansible_os_family }}-{{ ansible_distribution_major_version }}-{{ ansible_architecture }}.yml' + - '{{ ansible_os_family }}-{{ ansible_distribution_major_version }}-default.yml' + - '{{ ansible_os_family }}-default.yml' + - 'default.yml' + paths: + - '../vars/' + errors: 'ignore' +- name: 'package discovery' + when: + - ansible_system == 'Linux' + - packages is not defined + ansible.builtin.package_facts: +- name: 'service discovery' + when: + - ansible_system == 'Linux' + - services is not defined + ansible.builtin.service_facts: +- name: 'ensure packages' + when: + - ansible_system == 'Linux' + - ensure_docker is defined + - ensure_docker.package_list is defined + - ensure_docker.package_list is iterable + - packages[item.name] is not defined + ansible.builtin.package: + name: '{{ item.name }}' + state: '{{ item.state }}' + loop: '{{ ensure_docker.package_list }}' + loop_control: + label: '{{ item.name }} will be {{ item.state }}' + notify: + - 'ensure_docker.package_facts' + - 'ensure_docker.service_facts' +- name: 'ensure services' + when: + - ansible_system == 'Linux' + - ensure_docker is defined + - ensure_docker.service_list is defined + - ensure_docker.service_list is iterable + ansible.builtin.service: + enabled: '{{ item.enabled }}' + name: '{{ item.name }}' + state: '{{ item.state }}' + loop: '{{ ensure_docker.service_list }}' + loop_control: + label: '{{ item.name }} will be {{ item.state }}' + notify: + - 'ensure_docker.package_facts' + - 'ensure_docker.service_facts' +- name: 'Fetch kernel command line' + when: + - ansible_system = 'Linux' + - ensure_docker is defined + - ansible_distribution == 'Fedora' + - ansible_distribution_major_version is version('32', '>=') + shell: | + cat /proc/cmdline + register: 'results' + changed_when: 'false' +- name: 'Add cgroups v1 if disabled' + when: + - results is defined + - ' "systemd.unified_cgroup_hierarchy=0" not in results.stdout ' + shell: + cmd: | + grubby --update-kernel=ALL --args=systemd.unified_cgroup_hierarchy=0 +- name: 'Reboot to enable cgroups v1' + when: + - results is defined + - ' "systemd.unified_cgroup_hierarchy=0" not in results.stdout ' + reboot: +- name: 'flush handlers' + meta: 'flush_handlers' diff --git a/vars/CentOS-7.yml b/vars/CentOS-7.yml new file mode 100644 index 0000000..e953c3f --- /dev/null +++ b/vars/CentOS-7.yml @@ -0,0 +1,11 @@ +--- +# vars file for ensure_docker +package_list: + - name: 'docker-compose' + state: 'present' + - name: 'moby-engine' + state: 'present' +service_list: + - name: 'docker.socket' + state: 'started' + enabled: 'yes' diff --git a/vars/CentOS-8.yml b/vars/CentOS-8.yml new file mode 100644 index 0000000..e953c3f --- /dev/null +++ b/vars/CentOS-8.yml @@ -0,0 +1,11 @@ +--- +# vars file for ensure_docker +package_list: + - name: 'docker-compose' + state: 'present' + - name: 'moby-engine' + state: 'present' +service_list: + - name: 'docker.socket' + state: 'started' + enabled: 'yes' diff --git a/vars/Fedora-30.yml b/vars/Fedora-30.yml new file mode 100644 index 0000000..161d154 --- /dev/null +++ b/vars/Fedora-30.yml @@ -0,0 +1,13 @@ +--- +# vars file for ensure_docker +package_list: + - name: 'cockpit-docker' + state: 'present' + - name: 'docker-compose' + state: 'present' + - name: 'moby-engine' + state: 'present' +service_list: + - name: 'docker.socket' + state: 'started' + enabled: 'yes' diff --git a/vars/Fedora-31.yml b/vars/Fedora-31.yml new file mode 100644 index 0000000..161d154 --- /dev/null +++ b/vars/Fedora-31.yml @@ -0,0 +1,13 @@ +--- +# vars file for ensure_docker +package_list: + - name: 'cockpit-docker' + state: 'present' + - name: 'docker-compose' + state: 'present' + - name: 'moby-engine' + state: 'present' +service_list: + - name: 'docker.socket' + state: 'started' + enabled: 'yes' diff --git a/vars/Fedora-32.yml b/vars/Fedora-32.yml new file mode 100644 index 0000000..e953c3f --- /dev/null +++ b/vars/Fedora-32.yml @@ -0,0 +1,11 @@ +--- +# vars file for ensure_docker +package_list: + - name: 'docker-compose' + state: 'present' + - name: 'moby-engine' + state: 'present' +service_list: + - name: 'docker.socket' + state: 'started' + enabled: 'yes' diff --git a/vars/Fedora-33.yml b/vars/Fedora-33.yml new file mode 100644 index 0000000..e953c3f --- /dev/null +++ b/vars/Fedora-33.yml @@ -0,0 +1,11 @@ +--- +# vars file for ensure_docker +package_list: + - name: 'docker-compose' + state: 'present' + - name: 'moby-engine' + state: 'present' +service_list: + - name: 'docker.socket' + state: 'started' + enabled: 'yes' diff --git a/vars/default.yml b/vars/default.yml new file mode 100644 index 0000000..66619a9 --- /dev/null +++ b/vars/default.yml @@ -0,0 +1,2 @@ +--- +# vars file for ensure_docker \ No newline at end of file