From d1281a6e77e15d35c3d493e8fb11b39a3219f88a Mon Sep 17 00:00:00 2001 From: AnsibleRoles <> Date: Sun, 20 Dec 2020 22:48:33 +0000 Subject: [PATCH 01/16] Initial commit --- .gitignore | 97 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ README.md | 2 ++ 2 files changed, 99 insertions(+) create mode 100644 .gitignore create mode 100644 README.md diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..7a6ae95 --- /dev/null +++ b/.gitignore @@ -0,0 +1,97 @@ +# ---> Ansible +*.retry + +# ---> Windows +# Windows thumbnail cache files +Thumbs.db +ehthumbs.db +ehthumbs_vista.db + +# Dump file +*.stackdump + +# Folder config file +[Dd]esktop.ini + +# Recycle Bin used on file shares +$RECYCLE.BIN/ + +# Windows Installer files +*.cab +*.msi +*.msix +*.msm +*.msp + +# Windows shortcuts +*.lnk + +# ---> Linux +*~ + +# temporary files which can be created if a process still has a handle open of a deleted file +.fuse_hidden* + +# KDE directory preferences +.directory + +# Linux trash folder which might appear on any partition or disk +.Trash-* + +# .nfs files are created when an open file is removed but is still being accessed +.nfs* + +# ---> macOS +# General +.DS_Store +.AppleDouble +.LSOverride + +# Icon must end with two \r +Icon + +# Thumbnails +._* + +# Files that might appear in the root of a volume +.DocumentRevisions-V100 +.fseventsd +.Spotlight-V100 +.TemporaryItems +.Trashes +.VolumeIcon.icns +.com.apple.timemachine.donotpresent + +# Directories potentially created on remote AFP share +.AppleDB +.AppleDesktop +Network Trash Folder +Temporary Items +.apdisk + +# ---> Vim +# Swap +[._]*.s[a-v][a-z] +[._]*.sw[a-p] +[._]s[a-rt-v][a-z] +[._]ss[a-gi-z] +[._]sw[a-p] + +# Session +Session.vim + +# Temporary +.netrwhist +*~ +# Auto-generated tag files +tags +# Persistent undo +[._]*.un~ + +# ---> VisualStudioCode +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json + diff --git a/README.md b/README.md new file mode 100644 index 0000000..9b0bb48 --- /dev/null +++ b/README.md @@ -0,0 +1,2 @@ +# ensure_docker + From aa7e6e128d95620011fad1f0b0be7532f4a12d7c Mon Sep 17 00:00:00 2001 From: Jason Rothstein Date: Sun, 20 Dec 2020 17:20:10 -0600 Subject: [PATCH 02/16] Initial Role --- .travis.yml | 29 ++++++++++++++++++++++++++ README.md | 38 ++++++++++++++++++++++++++++++++- defaults/main.yml | 2 ++ handlers/main.yml | 7 +++++++ meta/main.yml | 53 +++++++++++++++++++++++++++++++++++++++++++++++ tasks/main.yml | 2 ++ tests/inventory | 2 ++ tests/test.yml | 5 +++++ vars/main.yml | 2 ++ 9 files changed, 139 insertions(+), 1 deletion(-) create mode 100644 .travis.yml create mode 100644 defaults/main.yml create mode 100644 handlers/main.yml create mode 100644 meta/main.yml create mode 100644 tasks/main.yml create mode 100644 tests/inventory create mode 100644 tests/test.yml create mode 100644 vars/main.yml diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..36bbf62 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,29 @@ +--- +language: python +python: "2.7" + +# Use the new container infrastructure +sudo: false + +# Install ansible +addons: + apt: + packages: + - python-pip + +install: + # Install ansible + - pip install ansible + + # Check ansible version + - ansible --version + + # Create ansible.cfg with correct roles_path + - printf '[defaults]\nroles_path=../' >ansible.cfg + +script: + # Basic role syntax check + - ansible-playbook tests/test.yml -i tests/inventory --syntax-check + +notifications: + webhooks: https://galaxy.ansible.com/api/v1/notifications/ \ No newline at end of file diff --git a/README.md b/README.md index 9b0bb48..225dd44 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,38 @@ -# ensure_docker +Role Name +========= +A brief description of the role goes here. + +Requirements +------------ + +Any pre-requisites that may not be covered by Ansible itself or the role should be mentioned here. For instance, if the role uses the EC2 module, it may be a good idea to mention in this section that the boto package is required. + +Role Variables +-------------- + +A description of the settable variables for this role should go here, including any variables that are in defaults/main.yml, vars/main.yml, and any variables that can/should be set via parameters to the role. Any variables that are read from other roles and/or the global scope (ie. hostvars, group vars, etc.) should be mentioned here as well. + +Dependencies +------------ + +A list of other roles hosted on Galaxy should go here, plus any details in regards to parameters that may need to be set for other roles, or variables that are used from other roles. + +Example Playbook +---------------- + +Including an example of how to use your role (for instance, with variables passed in as parameters) is always nice for users too: + + - hosts: servers + roles: + - { role: username.rolename, x: 42 } + +License +------- + +BSD + +Author Information +------------------ + +An optional section for the role authors to include contact information, or a website (HTML is not allowed). diff --git a/defaults/main.yml b/defaults/main.yml new file mode 100644 index 0000000..dd0b198 --- /dev/null +++ b/defaults/main.yml @@ -0,0 +1,2 @@ +--- +# defaults file for ensure_docker \ No newline at end of file diff --git a/handlers/main.yml b/handlers/main.yml new file mode 100644 index 0000000..ed3a078 --- /dev/null +++ b/handlers/main.yml @@ -0,0 +1,7 @@ +--- +# handlers file for ensure_docker +- name: 'ensure_docker.package_facts' + ansible.builtin.package_facts: +- name: 'ensure_docker.service_facts' + ansible.builtin.service_facts: + diff --git a/meta/main.yml b/meta/main.yml new file mode 100644 index 0000000..227ad9c --- /dev/null +++ b/meta/main.yml @@ -0,0 +1,53 @@ +galaxy_info: + author: your name + description: your role description + company: your company (optional) + + # If the issue tracker for your role is not on github, uncomment the + # next line and provide a value + # issue_tracker_url: http://example.com/issue/tracker + + # Choose a valid license ID from https://spdx.org - some suggested licenses: + # - BSD-3-Clause (default) + # - MIT + # - GPL-2.0-or-later + # - GPL-3.0-only + # - Apache-2.0 + # - CC-BY-4.0 + license: license (GPL-2.0-or-later, MIT, etc) + + min_ansible_version: 2.9 + + # If this a Container Enabled role, provide the minimum Ansible Container version. + # min_ansible_container_version: + + # + # Provide a list of supported platforms, and for each platform a list of versions. + # If you don't wish to enumerate all versions for a particular platform, use 'all'. + # To view available platforms and versions (or releases), visit: + # https://galaxy.ansible.com/api/v1/platforms/ + # + # platforms: + # - name: Fedora + # versions: + # - all + # - 25 + # - name: SomePlatform + # versions: + # - all + # - 1.0 + # - 7 + # - 99.99 + + galaxy_tags: [] + # List tags for your role here, one per line. A tag is a keyword that describes + # and categorizes the role. Users find roles by searching for tags. Be sure to + # remove the '[]' above, if you add tags to this list. + # + # NOTE: A tag is limited to a single word comprised of alphanumeric characters. + # Maximum 20 tags per role. + +dependencies: [] + # List your role dependencies here, one per line. Be sure to remove the '[]' above, + # if you add dependencies to this list. + \ No newline at end of file diff --git a/tasks/main.yml b/tasks/main.yml new file mode 100644 index 0000000..cf22675 --- /dev/null +++ b/tasks/main.yml @@ -0,0 +1,2 @@ +--- +# tasks file for ensure_docker \ No newline at end of file diff --git a/tests/inventory b/tests/inventory new file mode 100644 index 0000000..878877b --- /dev/null +++ b/tests/inventory @@ -0,0 +1,2 @@ +localhost + diff --git a/tests/test.yml b/tests/test.yml new file mode 100644 index 0000000..cde5271 --- /dev/null +++ b/tests/test.yml @@ -0,0 +1,5 @@ +--- +- hosts: localhost + remote_user: root + roles: + - ensure_docker \ No newline at end of file diff --git a/vars/main.yml b/vars/main.yml new file mode 100644 index 0000000..66619a9 --- /dev/null +++ b/vars/main.yml @@ -0,0 +1,2 @@ +--- +# vars file for ensure_docker \ No newline at end of file From 24cec463eb0518c1a6c9a94e042e644e2f92e5e0 Mon Sep 17 00:00:00 2001 From: Jason Rothstein Date: Sun, 20 Dec 2020 17:31:30 -0600 Subject: [PATCH 03/16] 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 From aa1a61e81c41ffe09f16b371975df707dcc8eb94 Mon Sep 17 00:00:00 2001 From: Jason Rothstein Date: Sun, 20 Dec 2020 17:40:57 -0600 Subject: [PATCH 04/16] Fix syntax --- tasks/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tasks/main.yml b/tasks/main.yml index 696431b..41b4ef5 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -63,7 +63,7 @@ - 'ensure_docker.service_facts' - name: 'Fetch kernel command line' when: - - ansible_system = 'Linux' + - ansible_system == 'Linux' - ensure_docker is defined - ansible_distribution == 'Fedora' - ansible_distribution_major_version is version('32', '>=') From 2d159bcf30ad3c4c322865a508834b03a016ef2e Mon Sep 17 00:00:00 2001 From: Jason Rothstein Date: Mon, 8 Feb 2021 21:28:25 -0600 Subject: [PATCH 05/16] Ensure correct variable file names --- vars/{CentOS-7.yml => CentOS-7-default.yml} | 0 vars/{CentOS-8.yml => CentOS-8-default.yml} | 0 vars/{Fedora-30.yml => Fedora-30-default.yml} | 0 vars/{Fedora-31.yml => Fedora-31-default.yml} | 0 vars/{Fedora-32.yml => Fedora-32-default.yml} | 0 vars/{Fedora-33.yml => Fedora-33-default.yml} | 0 6 files changed, 0 insertions(+), 0 deletions(-) rename vars/{CentOS-7.yml => CentOS-7-default.yml} (100%) rename vars/{CentOS-8.yml => CentOS-8-default.yml} (100%) rename vars/{Fedora-30.yml => Fedora-30-default.yml} (100%) rename vars/{Fedora-31.yml => Fedora-31-default.yml} (100%) rename vars/{Fedora-32.yml => Fedora-32-default.yml} (100%) rename vars/{Fedora-33.yml => Fedora-33-default.yml} (100%) diff --git a/vars/CentOS-7.yml b/vars/CentOS-7-default.yml similarity index 100% rename from vars/CentOS-7.yml rename to vars/CentOS-7-default.yml diff --git a/vars/CentOS-8.yml b/vars/CentOS-8-default.yml similarity index 100% rename from vars/CentOS-8.yml rename to vars/CentOS-8-default.yml diff --git a/vars/Fedora-30.yml b/vars/Fedora-30-default.yml similarity index 100% rename from vars/Fedora-30.yml rename to vars/Fedora-30-default.yml diff --git a/vars/Fedora-31.yml b/vars/Fedora-31-default.yml similarity index 100% rename from vars/Fedora-31.yml rename to vars/Fedora-31-default.yml diff --git a/vars/Fedora-32.yml b/vars/Fedora-32-default.yml similarity index 100% rename from vars/Fedora-32.yml rename to vars/Fedora-32-default.yml diff --git a/vars/Fedora-33.yml b/vars/Fedora-33-default.yml similarity index 100% rename from vars/Fedora-33.yml rename to vars/Fedora-33-default.yml From 2c85c790add3cb75d29771c5d7d2ca8e9c05bc1a Mon Sep 17 00:00:00 2001 From: Jason Rothstein Date: Mon, 8 Feb 2021 22:14:56 -0600 Subject: [PATCH 06/16] Only run grubby if cat runs (fixes check mode) --- tasks/main.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tasks/main.yml b/tasks/main.yml index 41b4ef5..b778e6f 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -74,6 +74,7 @@ - name: 'Add cgroups v1 if disabled' when: - results is defined + - results.stdout is defined - ' "systemd.unified_cgroup_hierarchy=0" not in results.stdout ' shell: cmd: | @@ -81,6 +82,7 @@ - name: 'Reboot to enable cgroups v1' when: - results is defined + - results.stdout is defined - ' "systemd.unified_cgroup_hierarchy=0" not in results.stdout ' reboot: - name: 'flush handlers' From 767bfce236927010bc279c43b686e653e7156c68 Mon Sep 17 00:00:00 2001 From: Jason Rothstein Date: Mon, 8 Feb 2021 22:20:04 -0600 Subject: [PATCH 07/16] Add debugging to find out why check mode is broken --- tasks/main.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/tasks/main.yml b/tasks/main.yml index b778e6f..3fdd83c 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -71,6 +71,9 @@ cat /proc/cmdline register: 'results' changed_when: 'false' +- name: 'debug' + debug: + var: 'results' - name: 'Add cgroups v1 if disabled' when: - results is defined @@ -79,6 +82,9 @@ shell: cmd: | grubby --update-kernel=ALL --args=systemd.unified_cgroup_hierarchy=0 +- name: 'debug' + debug: + var: 'results' - name: 'Reboot to enable cgroups v1' when: - results is defined From 11cbd7a6b876e7e8df97db2ab61e66e8e2a6adac Mon Sep 17 00:00:00 2001 From: Jason Rothstein Date: Mon, 8 Feb 2021 22:21:59 -0600 Subject: [PATCH 08/16] Remove debugt, everything is working --- tasks/main.yml | 6 ------ 1 file changed, 6 deletions(-) diff --git a/tasks/main.yml b/tasks/main.yml index 3fdd83c..b778e6f 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -71,9 +71,6 @@ cat /proc/cmdline register: 'results' changed_when: 'false' -- name: 'debug' - debug: - var: 'results' - name: 'Add cgroups v1 if disabled' when: - results is defined @@ -82,9 +79,6 @@ shell: cmd: | grubby --update-kernel=ALL --args=systemd.unified_cgroup_hierarchy=0 -- name: 'debug' - debug: - var: 'results' - name: 'Reboot to enable cgroups v1' when: - results is defined From 2713fc3d4071a1bf7aa7942a584b5a5117208c52 Mon Sep 17 00:00:00 2001 From: Jason Rothstein Date: Mon, 8 Feb 2021 22:41:16 -0600 Subject: [PATCH 09/16] Use ansible_cmdline to detect cgroup status --- tasks/main.yml | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/tasks/main.yml b/tasks/main.yml index b778e6f..a5a4afe 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -61,29 +61,25 @@ notify: - 'ensure_docker.package_facts' - 'ensure_docker.service_facts' -- name: 'Fetch kernel command line' +- name: 'Ensure cgroups are v1 only' 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 - - results.stdout is defined - - ' "systemd.unified_cgroup_hierarchy=0" not in results.stdout ' + - ansible_cmdline is defined + - ansible_cmdline['systemd.unified_cgroup_hierarchy'] is not defined shell: cmd: | grubby --update-kernel=ALL --args=systemd.unified_cgroup_hierarchy=0 - name: 'Reboot to enable cgroups v1' when: - - results is defined - - results.stdout is defined - - ' "systemd.unified_cgroup_hierarchy=0" not in results.stdout ' + - ansible_system == 'Linux' + - ensure_docker is defined + - ansible_distribution == 'Fedora' + - ansible_distribution_major_version is version('32', '>=') + - ansible_cmdline is defined + - ansible_cmdline['systemd.unified_cgroup_hierarchy'] is not defined reboot: - name: 'flush handlers' meta: 'flush_handlers' From c0f41d246d85964d922acfbadaaad70ead7f38ba Mon Sep 17 00:00:00 2001 From: Jason Rothstein Date: Tue, 29 Jun 2021 22:24:50 -0500 Subject: [PATCH 10/16] Enable Fedora 34 --- vars/Fedora-34-default.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 vars/Fedora-34-default.yml diff --git a/vars/Fedora-34-default.yml b/vars/Fedora-34-default.yml new file mode 100644 index 0000000..e953c3f --- /dev/null +++ b/vars/Fedora-34-default.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' From a9b38df9782697f39d97443b74eb19ce4e1dfd3e Mon Sep 17 00:00:00 2001 From: Jason Rothstein Date: Wed, 21 Jul 2021 02:40:28 +0000 Subject: [PATCH 11/16] Update task template for config files when required --- tasks/main.yml | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/tasks/main.yml b/tasks/main.yml index a5a4afe..8c7d74c 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -45,6 +45,31 @@ notify: - 'ensure_docker.package_facts' - 'ensure_docker.service_facts' +- name: 'ensure configurations' + when: + - ansible_system == 'Linux' + - ensure_docker is defined + - ensure_docker.template_list is defined + - ensure_docker.template_list is iterable + ansible.builtin.template: + backup: 'no' + dest: '{{ item.dest }}' + group: '{{ item.group | default(omit) }}' + mode: '{{ item.mode | default(omit) }}' + owner: '{{ item.owner | default(omit) }}' + selevel: '{{ iteml.selevel | default(omit) }}' + serole: '{{ item.serole | default(omit) }}' + setype: '{{ item.setype | default(omit) }}' + seuser: '{{ item.seuser | default(omit) }}' + src: '{{ item.src }}' + loop: '{{ ensure_docker.template_list }}' + loop_control: + label: '{{ item.dest }} will be ensured' + notify: + - 'ensure_docker.package_facts' + - 'ensure_docker.service_facts' +- name: 'flush handlers' + meta: 'flush_handlers' - name: 'ensure services' when: - ansible_system == 'Linux' From 8e5b5134945f66b98772036aaed7294798bf089c Mon Sep 17 00:00:00 2001 From: Jason Rothstein Date: Sun, 25 Jul 2021 03:49:51 +0000 Subject: [PATCH 12/16] Prevent multiple service restarts --- tasks/main.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/tasks/main.yml b/tasks/main.yml index 8c7d74c..5f3b7ce 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -68,8 +68,6 @@ notify: - 'ensure_docker.package_facts' - 'ensure_docker.service_facts' -- name: 'flush handlers' - meta: 'flush_handlers' - name: 'ensure services' when: - ansible_system == 'Linux' @@ -108,3 +106,4 @@ reboot: - name: 'flush handlers' meta: 'flush_handlers' + From 2f15945fb2710ac5e550aef5a1703823fc52b411 Mon Sep 17 00:00:00 2001 From: Jason Rothstein Date: Sun, 5 Jun 2022 16:29:23 -0500 Subject: [PATCH 13/16] Update handlers --- handlers/main.yml | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/handlers/main.yml b/handlers/main.yml index ed3a078..fcf7f1d 100644 --- a/handlers/main.yml +++ b/handlers/main.yml @@ -4,4 +4,24 @@ ansible.builtin.package_facts: - name: 'ensure_docker.service_facts' ansible.builtin.service_facts: - +- name: 'ensure_docker.service_reload' + when: + - ansible_system == 'Linux' + - ansible_service_mgr == 'systemd' + - ensure_docker is defined + ansible.builtin.systemd: + daemon_reload: 'yes' +- name: 'ensure_docker.services' + when: + - ansible_system == 'Linux' + - ensure_docker is defined + - ensure_docker.service_list is defined + - ensure_docker.service_list is iterable + - item.state == 'started' + ansible.builtin.service: + enabled: '{{ item.enabled }}' + name: '{{ item.name }}' + state: 'restarted' + loop: '{{ ensure_docker.service_list }}' + loop_control: + label: '{{ item.name }} will be restarted' From b48ecea6a0a6d380c6f0b8959b4706e7fa3334bd Mon Sep 17 00:00:00 2001 From: Jason Rothstein Date: Sun, 5 Jun 2022 16:47:39 -0500 Subject: [PATCH 14/16] Update tasks --- tasks/main.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/tasks/main.yml b/tasks/main.yml index 5f3b7ce..e92b205 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -35,7 +35,6 @@ - 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 }}' From ef36b81762f6f169be3303cd9f70d6fc9bc8f70d Mon Sep 17 00:00:00 2001 From: Jason Rothstein Date: Tue, 6 Dec 2022 21:59:17 -0600 Subject: [PATCH 15/16] Add Fedora 35/36/37 --- vars/Fedora-35-default.yml | 11 +++++++++++ vars/Fedora-36-default.yml | 11 +++++++++++ vars/Fedora-37-default.yml | 11 +++++++++++ 3 files changed, 33 insertions(+) create mode 100644 vars/Fedora-35-default.yml create mode 100644 vars/Fedora-36-default.yml create mode 100644 vars/Fedora-37-default.yml diff --git a/vars/Fedora-35-default.yml b/vars/Fedora-35-default.yml new file mode 100644 index 0000000..e953c3f --- /dev/null +++ b/vars/Fedora-35-default.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-36-default.yml b/vars/Fedora-36-default.yml new file mode 100644 index 0000000..e953c3f --- /dev/null +++ b/vars/Fedora-36-default.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-37-default.yml b/vars/Fedora-37-default.yml new file mode 100644 index 0000000..e953c3f --- /dev/null +++ b/vars/Fedora-37-default.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' From 61f5aa283b5dc6fdb97867333ba51e7e70d99c98 Mon Sep 17 00:00:00 2001 From: Jason Rothstein Date: Sun, 25 May 2025 20:06:14 -0500 Subject: [PATCH 16/16] Handler improvements Signed-off-by: Jason Rothstein --- handlers/main.yml | 4 +++- tasks/main.yml | 3 +++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/handlers/main.yml b/handlers/main.yml index fcf7f1d..9bd2040 100644 --- a/handlers/main.yml +++ b/handlers/main.yml @@ -11,7 +11,7 @@ - ensure_docker is defined ansible.builtin.systemd: daemon_reload: 'yes' -- name: 'ensure_docker.services' +- name: 'ensure_docker.service_restart' when: - ansible_system == 'Linux' - ensure_docker is defined @@ -25,3 +25,5 @@ loop: '{{ ensure_docker.service_list }}' loop_control: label: '{{ item.name }} will be restarted' +... + diff --git a/tasks/main.yml b/tasks/main.yml index e92b205..844f734 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -67,6 +67,8 @@ notify: - 'ensure_docker.package_facts' - 'ensure_docker.service_facts' + - 'ensure_docker.service_restart' + - 'ensure_docker.service_reload' - name: 'ensure services' when: - ansible_system == 'Linux' @@ -105,4 +107,5 @@ reboot: - name: 'flush handlers' meta: 'flush_handlers' +...