From 07ea4550a0411476d41a4d1a70d765c6508327d3 Mon Sep 17 00:00:00 2001 From: AnsibleRoles <> Date: Fri, 22 Nov 2019 03:27:31 +0000 Subject: [PATCH 01/34] Initial commit --- .gitignore | 97 +++++++++++++++++++++++++++++++ LICENSE | 163 +++++++++++++++++++++++++++++++++++++++++++++++++++++ README.md | 2 + 3 files changed, 262 insertions(+) create mode 100644 .gitignore create mode 100644 LICENSE create mode 100644 README.md diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ce59d0b --- /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 + +# ---> 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 + +# ---> 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* + +# ---> 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/LICENSE b/LICENSE new file mode 100644 index 0000000..1344add --- /dev/null +++ b/LICENSE @@ -0,0 +1,163 @@ +GNU LESSER GENERAL PUBLIC LICENSE + +Version 3, 29 June 2007 + +Copyright (C) 2007 Free Software Foundation, Inc. + +Everyone is permitted to copy and distribute verbatim copies of this license +document, but changing it is not allowed. + +This version of the GNU Lesser General Public License incorporates the terms +and conditions of version 3 of the GNU General Public License, supplemented +by the additional permissions listed below. + + 0. Additional Definitions. + + + +As used herein, "this License" refers to version 3 of the GNU Lesser General +Public License, and the "GNU GPL" refers to version 3 of the GNU General Public +License. + + + +"The Library" refers to a covered work governed by this License, other than +an Application or a Combined Work as defined below. + + + +An "Application" is any work that makes use of an interface provided by the +Library, but which is not otherwise based on the Library. Defining a subclass +of a class defined by the Library is deemed a mode of using an interface provided +by the Library. + + + +A "Combined Work" is a work produced by combining or linking an Application +with the Library. The particular version of the Library with which the Combined +Work was made is also called the "Linked Version". + + + +The "Minimal Corresponding Source" for a Combined Work means the Corresponding +Source for the Combined Work, excluding any source code for portions of the +Combined Work that, considered in isolation, are based on the Application, +and not on the Linked Version. + + + +The "Corresponding Application Code" for a Combined Work means the object +code and/or source code for the Application, including any data and utility +programs needed for reproducing the Combined Work from the Application, but +excluding the System Libraries of the Combined Work. + + 1. Exception to Section 3 of the GNU GPL. + +You may convey a covered work under sections 3 and 4 of this License without +being bound by section 3 of the GNU GPL. + + 2. Conveying Modified Versions. + +If you modify a copy of the Library, and, in your modifications, a facility +refers to a function or data to be supplied by an Application that uses the +facility (other than as an argument passed when the facility is invoked), +then you may convey a copy of the modified version: + +a) under this License, provided that you make a good faith effort to ensure +that, in the event an Application does not supply the function or data, the +facility still operates, and performs whatever part of its purpose remains +meaningful, or + +b) under the GNU GPL, with none of the additional permissions of this License +applicable to that copy. + + 3. Object Code Incorporating Material from Library Header Files. + +The object code form of an Application may incorporate material from a header +file that is part of the Library. You may convey such object code under terms +of your choice, provided that, if the incorporated material is not limited +to numerical parameters, data structure layouts and accessors, or small macros, +inline functions and templates (ten or fewer lines in length), you do both +of the following: + +a) Give prominent notice with each copy of the object code that the Library +is used in it and that the Library and its use are covered by this License. + +b) Accompany the object code with a copy of the GNU GPL and this license document. + + 4. Combined Works. + +You may convey a Combined Work under terms of your choice that, taken together, +effectively do not restrict modification of the portions of the Library contained +in the Combined Work and reverse engineering for debugging such modifications, +if you also do each of the following: + +a) Give prominent notice with each copy of the Combined Work that the Library +is used in it and that the Library and its use are covered by this License. + +b) Accompany the Combined Work with a copy of the GNU GPL and this license +document. + +c) For a Combined Work that displays copyright notices during execution, include +the copyright notice for the Library among these notices, as well as a reference +directing the user to the copies of the GNU GPL and this license document. + + d) Do one of the following: + +0) Convey the Minimal Corresponding Source under the terms of this License, +and the Corresponding Application Code in a form suitable for, and under terms +that permit, the user to recombine or relink the Application with a modified +version of the Linked Version to produce a modified Combined Work, in the +manner specified by section 6 of the GNU GPL for conveying Corresponding Source. + +1) Use a suitable shared library mechanism for linking with the Library. A +suitable mechanism is one that (a) uses at run time a copy of the Library +already present on the user's computer system, and (b) will operate properly +with a modified version of the Library that is interface-compatible with the +Linked Version. + +e) Provide Installation Information, but only if you would otherwise be required +to provide such information under section 6 of the GNU GPL, and only to the +extent that such information is necessary to install and execute a modified +version of the Combined Work produced by recombining or relinking the Application +with a modified version of the Linked Version. (If you use option 4d0, the +Installation Information must accompany the Minimal Corresponding Source and +Corresponding Application Code. If you use option 4d1, you must provide the +Installation Information in the manner specified by section 6 of the GNU GPL +for conveying Corresponding Source.) + + 5. Combined Libraries. + +You may place library facilities that are a work based on the Library side +by side in a single library together with other library facilities that are +not Applications and are not covered by this License, and convey such a combined +library under terms of your choice, if you do both of the following: + +a) Accompany the combined library with a copy of the same work based on the +Library, uncombined with any other library facilities, conveyed under the +terms of this License. + +b) Give prominent notice with the combined library that part of it is a work +based on the Library, and explaining where to find the accompanying uncombined +form of the same work. + + 6. Revised Versions of the GNU Lesser General Public License. + +The Free Software Foundation may publish revised and/or new versions of the +GNU Lesser General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to address +new problems or concerns. + +Each version is given a distinguishing version number. If the Library as you +received it specifies that a certain numbered version of the GNU Lesser General +Public License "or any later version" applies to it, you have the option of +following the terms and conditions either of that published version or of +any later version published by the Free Software Foundation. If the Library +as you received it does not specify a version number of the GNU Lesser General +Public License, you may choose any version of the GNU Lesser General Public +License ever published by the Free Software Foundation. + +If the Library as you received it specifies that a proxy can decide whether +future versions of the GNU Lesser General Public License shall apply, that +proxy's public statement of acceptance of any version is permanent authorization +for you to choose that version for the Library. diff --git a/README.md b/README.md new file mode 100644 index 0000000..4cb023c --- /dev/null +++ b/README.md @@ -0,0 +1,2 @@ +# ensure_os_patch + From 90a7d2c631fd584f7fb0d6dd6fae96e7576e5b63 Mon Sep 17 00:00:00 2001 From: Jason Rothstein Date: Thu, 21 Nov 2019 21:35:13 -0600 Subject: [PATCH 02/34] Ensure OS Patch --- .travis.yml | 29 ++++++++++++++++++++++++++ README.md | 38 ++++++++++++++++++++++++++++++++- defaults/main.yml | 2 ++ handlers/main.yml | 7 +++++++ meta/main.yml | 53 +++++++++++++++++++++++++++++++++++++++++++++++ tasks/main.yml | 25 ++++++++++++++++++++++ tests/inventory | 2 ++ tests/test.yml | 5 +++++ vars/main.yml | 2 ++ 9 files changed, 162 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 4cb023c..5eef1c7 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,38 @@ -# ensure_os_patch +Role Name +========= +Ensure OS is patched + +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 +------- + +LGPL >= 3 + +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..41bd0d1 --- /dev/null +++ b/defaults/main.yml @@ -0,0 +1,2 @@ +--- +# defaults file for ensure_os_patch \ No newline at end of file diff --git a/handlers/main.yml b/handlers/main.yml new file mode 100644 index 0000000..553407b --- /dev/null +++ b/handlers/main.yml @@ -0,0 +1,7 @@ +--- +# handlers file for ensure_os_patch +- name: 'package_facts' + package_facts: +- name: 'service_facts' + 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..309f288 --- /dev/null +++ b/tasks/main.yml @@ -0,0 +1,25 @@ +--- +# tasks file for ensure_os_patch +- name: 'package discovery' + when: + - ansible_system == 'Linux' + - packages is not defined + package_facts: +- name: 'service discovery' + when: + - ansible_system == 'Linux' + - services is not defined + service_facts: +- name: 'ensure patch' + when: + - ansible_system == 'Linux' + - ansible_distribution == 'CentOS' or ansible_distribution == 'Fedora' or ansible_distribution == 'OracleLinux' + package: + name: '*' + state: 'latest' + notify: + - 'package_facts' + - 'service_facts' +- name: 'flush handlers' + meta: 'flush_handlers' + 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..024e967 --- /dev/null +++ b/tests/test.yml @@ -0,0 +1,5 @@ +--- +- hosts: localhost + remote_user: root + roles: + - ensure_os_patch \ No newline at end of file diff --git a/vars/main.yml b/vars/main.yml new file mode 100644 index 0000000..fcb2238 --- /dev/null +++ b/vars/main.yml @@ -0,0 +1,2 @@ +--- +# vars file for ensure_os_patch \ No newline at end of file From eb7f4905f502df21085a4abdd01650eb6cae2191 Mon Sep 17 00:00:00 2001 From: Jason Rothstein Date: Tue, 24 Dec 2019 23:30:01 -0600 Subject: [PATCH 03/34] Make work for any dnf/yum compatible system, not just what we know about --- tasks/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tasks/main.yml b/tasks/main.yml index 309f288..ecc9445 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -13,7 +13,7 @@ - name: 'ensure patch' when: - ansible_system == 'Linux' - - ansible_distribution == 'CentOS' or ansible_distribution == 'Fedora' or ansible_distribution == 'OracleLinux' + - ansible_pkg_mgr == 'dnf' or ansible_pkg_mgr == 'yum' package: name: '*' state: 'latest' From 05005fb2b723b80a8e71f1e1f4f24cb5793d04ee Mon Sep 17 00:00:00 2001 From: Jason Rothstein Date: Mon, 30 Dec 2019 15:53:51 -0600 Subject: [PATCH 04/34] Mark handlers with psuedo namespace to prevent unintended consequences --- handlers/main.yml | 4 ++-- tasks/main.yml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/handlers/main.yml b/handlers/main.yml index 553407b..c58f2fa 100644 --- a/handlers/main.yml +++ b/handlers/main.yml @@ -1,7 +1,7 @@ --- # handlers file for ensure_os_patch -- name: 'package_facts' +- name: 'ensure_os_patch.package_facts' package_facts: -- name: 'service_facts' +- name: 'ensure_os_patch.service_facts' service_facts: diff --git a/tasks/main.yml b/tasks/main.yml index ecc9445..7a1168c 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -18,8 +18,8 @@ name: '*' state: 'latest' notify: - - 'package_facts' - - 'service_facts' + - 'ensure_os_patch.package_facts' + - 'ensure_os_patch.service_facts' - name: 'flush handlers' meta: 'flush_handlers' From 4cee19dc73f22753f74b7a714c6a531ecd9f26b5 Mon Sep 17 00:00:00 2001 From: Jason Rothstein Date: Wed, 1 Jan 2020 22:57:56 -0600 Subject: [PATCH 05/34] Add support for apt based distributions like Debian --- tasks/main.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/tasks/main.yml b/tasks/main.yml index 7a1168c..bc0ed71 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -20,6 +20,14 @@ notify: - 'ensure_os_patch.package_facts' - 'ensure_os_patch.service_facts' +- name: 'ensure patch' + when: + - ansible_system == 'Linux' + - ansible_pkg_mgr == 'apt' + apt: + autoclean: 'yes' + autoremove: 'yes' + upgrade: 'dist' - name: 'flush handlers' meta: 'flush_handlers' From f0c8c9849e924cb582245331418c3fb095c858d2 Mon Sep 17 00:00:00 2001 From: Jason Rothstein Date: Sat, 28 Mar 2020 17:39:40 -0500 Subject: [PATCH 06/34] Update galaxy metadata --- meta/main.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/meta/main.yml b/meta/main.yml index 227ad9c..42b4504 100644 --- a/meta/main.yml +++ b/meta/main.yml @@ -1,6 +1,6 @@ galaxy_info: - author: your name - description: your role description + author: Jason Rothstein + description: Ensure OS patches are applied company: your company (optional) # If the issue tracker for your role is not on github, uncomment the @@ -14,7 +14,7 @@ galaxy_info: # - GPL-3.0-only # - Apache-2.0 # - CC-BY-4.0 - license: license (GPL-2.0-or-later, MIT, etc) + license: LGPL-3.0-or-later min_ansible_version: 2.9 From adc37067c7eae3b117aecc2fffd11ae780a50a82 Mon Sep 17 00:00:00 2001 From: Jason Rothstein Date: Sun, 16 Aug 2020 13:43:17 -0500 Subject: [PATCH 07/34] Enable Fedora to use dnf-automatic to install os patches --- tasks/main.yml | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/tasks/main.yml b/tasks/main.yml index bc0ed71..6c806a6 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -28,6 +28,30 @@ autoclean: 'yes' autoremove: 'yes' upgrade: 'dist' +- name: 'Ensure dnf-automatic installation' + when: + - ansible_system == 'Linux' + - ansible_distribution == 'Fedora' + - ansible_distribution_major_version >= 21 + package: + name: + - 'dnf-automatic' + state: 'present' + notify: + - 'ensure_os_patch.package_facts' + - 'ensure_os_patch.service_facts' +- name: 'Ensure dnf-automatic runs' + when: + - ansible_system == 'Linux' + - ansible_distribution == 'Fedora' + - ansible_distribution_major_version >= 21 + service: + enabled: 'yes' + name: 'dnf-automatic-install.timer' + state: 'running' + notify: + - 'ensure_os_patch.package_facts' + - 'ensure_os_patch.service_facts' - name: 'flush handlers' meta: 'flush_handlers' From cf0ccf34897ae6b0597a8c2508417b3849b46652 Mon Sep 17 00:00:00 2001 From: Jason Rothstein Date: Sun, 16 Aug 2020 15:09:56 -0500 Subject: [PATCH 08/34] Use ansible version to perform the version compare --- tasks/main.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tasks/main.yml b/tasks/main.yml index 6c806a6..fe6bd3a 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -32,7 +32,7 @@ when: - ansible_system == 'Linux' - ansible_distribution == 'Fedora' - - ansible_distribution_major_version >= 21 + - ansible_distribution_major_version is version('21', '>=') package: name: - 'dnf-automatic' @@ -44,7 +44,7 @@ when: - ansible_system == 'Linux' - ansible_distribution == 'Fedora' - - ansible_distribution_major_version >= 21 + - ansible_distribution_major_version is version('21', '>=') service: enabled: 'yes' name: 'dnf-automatic-install.timer' From 2b57a5b9d89740087726630675e1ecc9eeb6f7e2 Mon Sep 17 00:00:00 2001 From: Jason Rothstein Date: Sun, 16 Aug 2020 15:13:20 -0500 Subject: [PATCH 09/34] started not running --- tasks/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tasks/main.yml b/tasks/main.yml index fe6bd3a..9c4b9bb 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -48,7 +48,7 @@ service: enabled: 'yes' name: 'dnf-automatic-install.timer' - state: 'running' + state: 'started' notify: - 'ensure_os_patch.package_facts' - 'ensure_os_patch.service_facts' From c8b1b6c7b23a7b8fbe32d55ac4de2232a5acdb33 Mon Sep 17 00:00:00 2001 From: Jason Rothstein Date: Sun, 29 Nov 2020 18:09:48 -0600 Subject: [PATCH 10/34] Update to use FQCN --- README.md | 2 +- handlers/main.yml | 4 ++-- tasks/main.yml | 15 +++++++++------ 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 5eef1c7..3356870 100644 --- a/README.md +++ b/README.md @@ -30,7 +30,7 @@ Including an example of how to use your role (for instance, with variables passe License ------- -LGPL >= 3 +LGPL-3.0-or-later Author Information ------------------ diff --git a/handlers/main.yml b/handlers/main.yml index c58f2fa..536e374 100644 --- a/handlers/main.yml +++ b/handlers/main.yml @@ -1,7 +1,7 @@ --- # handlers file for ensure_os_patch - name: 'ensure_os_patch.package_facts' - package_facts: + ansible.builtin.package_facts: - name: 'ensure_os_patch.service_facts' - service_facts: + ansible.builtin.service_facts: diff --git a/tasks/main.yml b/tasks/main.yml index 9c4b9bb..df1117d 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -4,17 +4,17 @@ when: - ansible_system == 'Linux' - packages is not defined - package_facts: + ansible.builtin.package_facts: - name: 'service discovery' when: - ansible_system == 'Linux' - services is not defined - service_facts: + ansible.builtin.service_facts: - name: 'ensure patch' when: - ansible_system == 'Linux' - ansible_pkg_mgr == 'dnf' or ansible_pkg_mgr == 'yum' - package: + ansible.builtin.package: name: '*' state: 'latest' notify: @@ -24,16 +24,19 @@ when: - ansible_system == 'Linux' - ansible_pkg_mgr == 'apt' - apt: + ansible.builtin.apt: autoclean: 'yes' autoremove: 'yes' upgrade: 'dist' + notify: + - 'ensure_os_patch.package_facts' + - 'ensure_os_patch.service_facts' - name: 'Ensure dnf-automatic installation' when: - ansible_system == 'Linux' - ansible_distribution == 'Fedora' - ansible_distribution_major_version is version('21', '>=') - package: + ansible.builtin.package: name: - 'dnf-automatic' state: 'present' @@ -45,7 +48,7 @@ - ansible_system == 'Linux' - ansible_distribution == 'Fedora' - ansible_distribution_major_version is version('21', '>=') - service: + ansible.builtin.service: enabled: 'yes' name: 'dnf-automatic-install.timer' state: 'started' From 7db6a00d708613747e78bc9301c57694efd0a6cf Mon Sep 17 00:00:00 2001 From: Jason Rothstein Date: Sun, 20 Dec 2020 07:51:47 -0600 Subject: [PATCH 11/34] CentOS >= 8 has dnf-automatic, so enable it --- tasks/main.yml | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/tasks/main.yml b/tasks/main.yml index df1117d..cd13557 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -34,8 +34,13 @@ - name: 'Ensure dnf-automatic installation' when: - ansible_system == 'Linux' - - ansible_distribution == 'Fedora' - - ansible_distribution_major_version is version('21', '>=') + - ( + ansible_distribution == 'Fedora' and + ansible_distribution_major_version is version('21', '>=') + ) or ( + ansible_distirbution == 'CentOS' and + ansible_distribution_major_version is version('8', '>=') + ) ansible.builtin.package: name: - 'dnf-automatic' @@ -46,8 +51,13 @@ - name: 'Ensure dnf-automatic runs' when: - ansible_system == 'Linux' - - ansible_distribution == 'Fedora' - - ansible_distribution_major_version is version('21', '>=') + - ( + ansible_distribution == 'Fedora' and + ansible_distribution_major_version is version('21', '>=') + ) or ( + ansible_distirbution == 'CentOS' and + ansible_distribution_major_version is version('8', '>=') + ) ansible.builtin.service: enabled: 'yes' name: 'dnf-automatic-install.timer' From 61e76737ba31a256b933c8f366c75d8e6851be82 Mon Sep 17 00:00:00 2001 From: Jason Rothstein Date: Sun, 20 Dec 2020 07:56:36 -0600 Subject: [PATCH 12/34] Syntax cleanup for style --- tasks/main.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tasks/main.yml b/tasks/main.yml index cd13557..12b07cd 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -13,7 +13,8 @@ - name: 'ensure patch' when: - ansible_system == 'Linux' - - ansible_pkg_mgr == 'dnf' or ansible_pkg_mgr == 'yum' + - ansible_pkg_mgr == 'dnf' or + ansible_pkg_mgr == 'yum' ansible.builtin.package: name: '*' state: 'latest' From 18a82ac36eee64358a02cc78ec168cf32e29e0bb Mon Sep 17 00:00:00 2001 From: Jason Rothstein Date: Sun, 20 Dec 2020 08:13:20 -0600 Subject: [PATCH 13/34] Spelling --- tasks/main.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tasks/main.yml b/tasks/main.yml index 12b07cd..eff48dd 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -39,7 +39,7 @@ ansible_distribution == 'Fedora' and ansible_distribution_major_version is version('21', '>=') ) or ( - ansible_distirbution == 'CentOS' and + ansible_distribution == 'CentOS' and ansible_distribution_major_version is version('8', '>=') ) ansible.builtin.package: @@ -56,7 +56,7 @@ ansible_distribution == 'Fedora' and ansible_distribution_major_version is version('21', '>=') ) or ( - ansible_distirbution == 'CentOS' and + ansible_distribution == 'CentOS' and ansible_distribution_major_version is version('8', '>=') ) ansible.builtin.service: From fe3c5c948f6b8e77471337548b0523bf32c4a674 Mon Sep 17 00:00:00 2001 From: Jason Rothstein Date: Mon, 28 Jun 2021 20:13:49 -0500 Subject: [PATCH 14/34] Make patching async because it can take some time. --- tasks/main.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tasks/main.yml b/tasks/main.yml index eff48dd..da9a5b6 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -18,6 +18,8 @@ ansible.builtin.package: name: '*' state: 'latest' + async: 900 + poll: 5 notify: - 'ensure_os_patch.package_facts' - 'ensure_os_patch.service_facts' @@ -29,6 +31,8 @@ autoclean: 'yes' autoremove: 'yes' upgrade: 'dist' + async: 900 + poll: 5 notify: - 'ensure_os_patch.package_facts' - 'ensure_os_patch.service_facts' From 580805bc345f28f6d698ac3be284bf5031d789ff Mon Sep 17 00:00:00 2001 From: Jason Rothstein Date: Sun, 25 Jul 2021 03:23:32 +0000 Subject: [PATCH 15/34] Genericize the roal to look like the rest --- tasks/Debian-default.yml | 16 ++++++ tasks/default.yml | 3 ++ tasks/main.yml | 100 +++++++++++++++++++++++-------------- vars/CentOS-6-default.yml | 6 +++ vars/CentOS-7-default.yml | 6 +++ vars/CentOS-8-default.yml | 12 +++++ vars/Fedora-21-default.yml | 12 +++++ vars/Fedora-22-default.yml | 12 +++++ vars/Fedora-23-default.yml | 12 +++++ vars/Fedora-24-default.yml | 12 +++++ vars/Fedora-25-default.yml | 12 +++++ vars/Fedora-26-default.yml | 12 +++++ vars/Fedora-27-default.yml | 12 +++++ vars/Fedora-28-default.yml | 12 +++++ vars/Fedora-29-default.yml | 12 +++++ vars/Fedora-30-default.yml | 12 +++++ vars/Fedora-31-default.yml | 12 +++++ vars/Fedora-32-default.yml | 12 +++++ vars/Fedora-33-default.yml | 12 +++++ vars/Fedora-34-default.yml | 12 +++++ vars/default.yml | 2 + 21 files changed, 275 insertions(+), 38 deletions(-) create mode 100644 tasks/Debian-default.yml create mode 100644 tasks/default.yml create mode 100644 vars/CentOS-6-default.yml create mode 100644 vars/CentOS-7-default.yml create mode 100644 vars/CentOS-8-default.yml create mode 100644 vars/Fedora-21-default.yml create mode 100644 vars/Fedora-22-default.yml create mode 100644 vars/Fedora-23-default.yml create mode 100644 vars/Fedora-24-default.yml create mode 100644 vars/Fedora-25-default.yml create mode 100644 vars/Fedora-26-default.yml create mode 100644 vars/Fedora-27-default.yml create mode 100644 vars/Fedora-28-default.yml create mode 100644 vars/Fedora-29-default.yml create mode 100644 vars/Fedora-30-default.yml create mode 100644 vars/Fedora-31-default.yml create mode 100644 vars/Fedora-32-default.yml create mode 100644 vars/Fedora-33-default.yml create mode 100644 vars/Fedora-34-default.yml create mode 100644 vars/default.yml diff --git a/tasks/Debian-default.yml b/tasks/Debian-default.yml new file mode 100644 index 0000000..2d2f16a --- /dev/null +++ b/tasks/Debian-default.yml @@ -0,0 +1,16 @@ +--- +# tasks file for ensure_os_patch +- name: 'ensure Debian patch' + when: + - ansible_system == 'Linux' + - ansible_pkg_mgr == 'apt' + ansible.builtin.apt: + autoclean: 'yes' + autoremove: 'yes' + upgrade: 'dist' + notify: + - 'ensure_os_patch.package_facts' + - 'ensure_os_patch.service_facts' +- name: 'flush handlers' + meta: 'flush_handlers' + diff --git a/tasks/default.yml b/tasks/default.yml new file mode 100644 index 0000000..546bf13 --- /dev/null +++ b/tasks/default.yml @@ -0,0 +1,3 @@ +--- +# tasks file for ensure_os_patch + diff --git a/tasks/main.yml b/tasks/main.yml index da9a5b6..549359a 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -1,5 +1,42 @@ --- # tasks file for ensure_os_patch +- name: 'include vendor / version specific tasks' + when: + - ansible_system == 'Linux' + include_tasks: + file: '{{ lookup("first_found", findme ) }}' + 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' + errors: 'ignore' +- name: 'flush handlers' + meta: 'flush_handlers' +- name: 'include variables' + when: + - ansible_system == 'Linux' + include_vars: + file: '{{ lookup("first_found", findme ) }}' + name: 'ensure_os_patch' + 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' @@ -10,20 +47,25 @@ - ansible_system == 'Linux' - services is not defined ansible.builtin.service_facts: -- name: 'ensure patch' +- name: 'ensure packages' when: - ansible_system == 'Linux' - - ansible_pkg_mgr == 'dnf' or - ansible_pkg_mgr == 'yum' + - ensure_os_patch is defined + - ensure_os_patch.package_list is defined + - ensure_os_patch.package_list is iterable + - packages[item.name] is not defined ansible.builtin.package: - name: '*' - state: 'latest' - async: 900 - poll: 5 + name: '{{ item.name }}' + state: '{{ item.state }}' + loop: '{{ ensure_os_patch.package_list }}' + loop_control: + label: '{{ item.name }} will be {{ item.state }}' notify: - 'ensure_os_patch.package_facts' - 'ensure_os_patch.service_facts' -- name: 'ensure patch' +- name: 'flush handlers' + meta: 'flush_handlers' +- name: 'ensure Debian patch' when: - ansible_system == 'Linux' - ansible_pkg_mgr == 'apt' @@ -31,42 +73,24 @@ autoclean: 'yes' autoremove: 'yes' upgrade: 'dist' - async: 900 - poll: 5 notify: - 'ensure_os_patch.package_facts' - 'ensure_os_patch.service_facts' -- name: 'Ensure dnf-automatic installation' +- name: 'flush handlers' + meta: 'flush_handlers' +- name: 'ensure services' when: - ansible_system == 'Linux' - - ( - ansible_distribution == 'Fedora' and - ansible_distribution_major_version is version('21', '>=') - ) or ( - ansible_distribution == 'CentOS' and - ansible_distribution_major_version is version('8', '>=') - ) - ansible.builtin.package: - name: - - 'dnf-automatic' - state: 'present' - notify: - - 'ensure_os_patch.package_facts' - - 'ensure_os_patch.service_facts' -- name: 'Ensure dnf-automatic runs' - when: - - ansible_system == 'Linux' - - ( - ansible_distribution == 'Fedora' and - ansible_distribution_major_version is version('21', '>=') - ) or ( - ansible_distribution == 'CentOS' and - ansible_distribution_major_version is version('8', '>=') - ) + - ensure_os_patch is defined + - ensure_os_patch.service_list is defined + - ensure_os_patch.service_list is iterable ansible.builtin.service: - enabled: 'yes' - name: 'dnf-automatic-install.timer' - state: 'started' + enabled: '{{ item.enabled }}' + name: '{{ item.name }}' + state: '{{ item.state }}' + loop: '{{ ensure_os_patch.service_list }}' + loop_control: + label: '{{ item.name }} will be {{ item.state }}' notify: - 'ensure_os_patch.package_facts' - 'ensure_os_patch.service_facts' diff --git a/vars/CentOS-6-default.yml b/vars/CentOS-6-default.yml new file mode 100644 index 0000000..8db76e2 --- /dev/null +++ b/vars/CentOS-6-default.yml @@ -0,0 +1,6 @@ +--- +# vars file for ensure_os_patch +package_list: + - name: '*' + state: 'latest' + diff --git a/vars/CentOS-7-default.yml b/vars/CentOS-7-default.yml new file mode 100644 index 0000000..8db76e2 --- /dev/null +++ b/vars/CentOS-7-default.yml @@ -0,0 +1,6 @@ +--- +# vars file for ensure_os_patch +package_list: + - name: '*' + state: 'latest' + diff --git a/vars/CentOS-8-default.yml b/vars/CentOS-8-default.yml new file mode 100644 index 0000000..cc81fbf --- /dev/null +++ b/vars/CentOS-8-default.yml @@ -0,0 +1,12 @@ +--- +# vars file for ensure_os_patch +package_list: + - name: 'dnf-automatic' + state: 'present' + - name: '*' + state: 'latest' +service_list: + - name: 'dnf-automatic.timer' + state: 'started' + enabled: 'yes' + diff --git a/vars/Fedora-21-default.yml b/vars/Fedora-21-default.yml new file mode 100644 index 0000000..cc81fbf --- /dev/null +++ b/vars/Fedora-21-default.yml @@ -0,0 +1,12 @@ +--- +# vars file for ensure_os_patch +package_list: + - name: 'dnf-automatic' + state: 'present' + - name: '*' + state: 'latest' +service_list: + - name: 'dnf-automatic.timer' + state: 'started' + enabled: 'yes' + diff --git a/vars/Fedora-22-default.yml b/vars/Fedora-22-default.yml new file mode 100644 index 0000000..cc81fbf --- /dev/null +++ b/vars/Fedora-22-default.yml @@ -0,0 +1,12 @@ +--- +# vars file for ensure_os_patch +package_list: + - name: 'dnf-automatic' + state: 'present' + - name: '*' + state: 'latest' +service_list: + - name: 'dnf-automatic.timer' + state: 'started' + enabled: 'yes' + diff --git a/vars/Fedora-23-default.yml b/vars/Fedora-23-default.yml new file mode 100644 index 0000000..cc81fbf --- /dev/null +++ b/vars/Fedora-23-default.yml @@ -0,0 +1,12 @@ +--- +# vars file for ensure_os_patch +package_list: + - name: 'dnf-automatic' + state: 'present' + - name: '*' + state: 'latest' +service_list: + - name: 'dnf-automatic.timer' + state: 'started' + enabled: 'yes' + diff --git a/vars/Fedora-24-default.yml b/vars/Fedora-24-default.yml new file mode 100644 index 0000000..cc81fbf --- /dev/null +++ b/vars/Fedora-24-default.yml @@ -0,0 +1,12 @@ +--- +# vars file for ensure_os_patch +package_list: + - name: 'dnf-automatic' + state: 'present' + - name: '*' + state: 'latest' +service_list: + - name: 'dnf-automatic.timer' + state: 'started' + enabled: 'yes' + diff --git a/vars/Fedora-25-default.yml b/vars/Fedora-25-default.yml new file mode 100644 index 0000000..cc81fbf --- /dev/null +++ b/vars/Fedora-25-default.yml @@ -0,0 +1,12 @@ +--- +# vars file for ensure_os_patch +package_list: + - name: 'dnf-automatic' + state: 'present' + - name: '*' + state: 'latest' +service_list: + - name: 'dnf-automatic.timer' + state: 'started' + enabled: 'yes' + diff --git a/vars/Fedora-26-default.yml b/vars/Fedora-26-default.yml new file mode 100644 index 0000000..cc81fbf --- /dev/null +++ b/vars/Fedora-26-default.yml @@ -0,0 +1,12 @@ +--- +# vars file for ensure_os_patch +package_list: + - name: 'dnf-automatic' + state: 'present' + - name: '*' + state: 'latest' +service_list: + - name: 'dnf-automatic.timer' + state: 'started' + enabled: 'yes' + diff --git a/vars/Fedora-27-default.yml b/vars/Fedora-27-default.yml new file mode 100644 index 0000000..cc81fbf --- /dev/null +++ b/vars/Fedora-27-default.yml @@ -0,0 +1,12 @@ +--- +# vars file for ensure_os_patch +package_list: + - name: 'dnf-automatic' + state: 'present' + - name: '*' + state: 'latest' +service_list: + - name: 'dnf-automatic.timer' + state: 'started' + enabled: 'yes' + diff --git a/vars/Fedora-28-default.yml b/vars/Fedora-28-default.yml new file mode 100644 index 0000000..cc81fbf --- /dev/null +++ b/vars/Fedora-28-default.yml @@ -0,0 +1,12 @@ +--- +# vars file for ensure_os_patch +package_list: + - name: 'dnf-automatic' + state: 'present' + - name: '*' + state: 'latest' +service_list: + - name: 'dnf-automatic.timer' + state: 'started' + enabled: 'yes' + diff --git a/vars/Fedora-29-default.yml b/vars/Fedora-29-default.yml new file mode 100644 index 0000000..cc81fbf --- /dev/null +++ b/vars/Fedora-29-default.yml @@ -0,0 +1,12 @@ +--- +# vars file for ensure_os_patch +package_list: + - name: 'dnf-automatic' + state: 'present' + - name: '*' + state: 'latest' +service_list: + - name: 'dnf-automatic.timer' + state: 'started' + enabled: 'yes' + diff --git a/vars/Fedora-30-default.yml b/vars/Fedora-30-default.yml new file mode 100644 index 0000000..cc81fbf --- /dev/null +++ b/vars/Fedora-30-default.yml @@ -0,0 +1,12 @@ +--- +# vars file for ensure_os_patch +package_list: + - name: 'dnf-automatic' + state: 'present' + - name: '*' + state: 'latest' +service_list: + - name: 'dnf-automatic.timer' + state: 'started' + enabled: 'yes' + diff --git a/vars/Fedora-31-default.yml b/vars/Fedora-31-default.yml new file mode 100644 index 0000000..cc81fbf --- /dev/null +++ b/vars/Fedora-31-default.yml @@ -0,0 +1,12 @@ +--- +# vars file for ensure_os_patch +package_list: + - name: 'dnf-automatic' + state: 'present' + - name: '*' + state: 'latest' +service_list: + - name: 'dnf-automatic.timer' + state: 'started' + enabled: 'yes' + diff --git a/vars/Fedora-32-default.yml b/vars/Fedora-32-default.yml new file mode 100644 index 0000000..cc81fbf --- /dev/null +++ b/vars/Fedora-32-default.yml @@ -0,0 +1,12 @@ +--- +# vars file for ensure_os_patch +package_list: + - name: 'dnf-automatic' + state: 'present' + - name: '*' + state: 'latest' +service_list: + - name: 'dnf-automatic.timer' + state: 'started' + enabled: 'yes' + diff --git a/vars/Fedora-33-default.yml b/vars/Fedora-33-default.yml new file mode 100644 index 0000000..cc81fbf --- /dev/null +++ b/vars/Fedora-33-default.yml @@ -0,0 +1,12 @@ +--- +# vars file for ensure_os_patch +package_list: + - name: 'dnf-automatic' + state: 'present' + - name: '*' + state: 'latest' +service_list: + - name: 'dnf-automatic.timer' + state: 'started' + enabled: 'yes' + diff --git a/vars/Fedora-34-default.yml b/vars/Fedora-34-default.yml new file mode 100644 index 0000000..cc81fbf --- /dev/null +++ b/vars/Fedora-34-default.yml @@ -0,0 +1,12 @@ +--- +# vars file for ensure_os_patch +package_list: + - name: 'dnf-automatic' + state: 'present' + - name: '*' + state: 'latest' +service_list: + - name: 'dnf-automatic.timer' + state: 'started' + enabled: 'yes' + diff --git a/vars/default.yml b/vars/default.yml new file mode 100644 index 0000000..fcb2238 --- /dev/null +++ b/vars/default.yml @@ -0,0 +1,2 @@ +--- +# vars file for ensure_os_patch \ No newline at end of file From 186ac87325e3ae286292f1629963d55f458ed83a Mon Sep 17 00:00:00 2001 From: Jason Rothstein Date: Sun, 25 Jul 2021 03:51:13 +0000 Subject: [PATCH 16/34] Prevent multiple service restarts --- tasks/main.yml | 6 ------ 1 file changed, 6 deletions(-) diff --git a/tasks/main.yml b/tasks/main.yml index 549359a..94b7ce5 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -16,8 +16,6 @@ - '{{ ansible_os_family }}-default.yml' - 'default.yml' errors: 'ignore' -- name: 'flush handlers' - meta: 'flush_handlers' - name: 'include variables' when: - ansible_system == 'Linux' @@ -63,8 +61,6 @@ notify: - 'ensure_os_patch.package_facts' - 'ensure_os_patch.service_facts' -- name: 'flush handlers' - meta: 'flush_handlers' - name: 'ensure Debian patch' when: - ansible_system == 'Linux' @@ -76,8 +72,6 @@ notify: - 'ensure_os_patch.package_facts' - 'ensure_os_patch.service_facts' -- name: 'flush handlers' - meta: 'flush_handlers' - name: 'ensure services' when: - ansible_system == 'Linux' From fb204662333fd33f7ec5dbcdcb701edee0e9ff71 Mon Sep 17 00:00:00 2001 From: Jason Rothstein Date: Sun, 7 Nov 2021 23:00:39 -0600 Subject: [PATCH 17/34] Enable Fedora 35 --- vars/CentOS-6-default.yml | 1 - vars/CentOS-7-default.yml | 1 - vars/CentOS-8-default.yml | 1 - vars/Fedora-21-default.yml | 1 - vars/Fedora-22-default.yml | 1 - vars/Fedora-23-default.yml | 1 - vars/Fedora-24-default.yml | 1 - vars/Fedora-25-default.yml | 1 - vars/Fedora-26-default.yml | 1 - vars/Fedora-27-default.yml | 1 - vars/Fedora-28-default.yml | 1 - vars/Fedora-29-default.yml | 1 - vars/Fedora-30-default.yml | 1 - vars/Fedora-31-default.yml | 1 - vars/Fedora-32-default.yml | 1 - vars/Fedora-33-default.yml | 1 - vars/Fedora-34-default.yml | 1 - vars/Fedora-35-default.yml | 11 +++++++++++ 18 files changed, 11 insertions(+), 17 deletions(-) create mode 100644 vars/Fedora-35-default.yml diff --git a/vars/CentOS-6-default.yml b/vars/CentOS-6-default.yml index 8db76e2..5578b25 100644 --- a/vars/CentOS-6-default.yml +++ b/vars/CentOS-6-default.yml @@ -3,4 +3,3 @@ package_list: - name: '*' state: 'latest' - diff --git a/vars/CentOS-7-default.yml b/vars/CentOS-7-default.yml index 8db76e2..5578b25 100644 --- a/vars/CentOS-7-default.yml +++ b/vars/CentOS-7-default.yml @@ -3,4 +3,3 @@ package_list: - name: '*' state: 'latest' - diff --git a/vars/CentOS-8-default.yml b/vars/CentOS-8-default.yml index cc81fbf..3483ce3 100644 --- a/vars/CentOS-8-default.yml +++ b/vars/CentOS-8-default.yml @@ -9,4 +9,3 @@ service_list: - name: 'dnf-automatic.timer' state: 'started' enabled: 'yes' - diff --git a/vars/Fedora-21-default.yml b/vars/Fedora-21-default.yml index cc81fbf..3483ce3 100644 --- a/vars/Fedora-21-default.yml +++ b/vars/Fedora-21-default.yml @@ -9,4 +9,3 @@ service_list: - name: 'dnf-automatic.timer' state: 'started' enabled: 'yes' - diff --git a/vars/Fedora-22-default.yml b/vars/Fedora-22-default.yml index cc81fbf..3483ce3 100644 --- a/vars/Fedora-22-default.yml +++ b/vars/Fedora-22-default.yml @@ -9,4 +9,3 @@ service_list: - name: 'dnf-automatic.timer' state: 'started' enabled: 'yes' - diff --git a/vars/Fedora-23-default.yml b/vars/Fedora-23-default.yml index cc81fbf..3483ce3 100644 --- a/vars/Fedora-23-default.yml +++ b/vars/Fedora-23-default.yml @@ -9,4 +9,3 @@ service_list: - name: 'dnf-automatic.timer' state: 'started' enabled: 'yes' - diff --git a/vars/Fedora-24-default.yml b/vars/Fedora-24-default.yml index cc81fbf..3483ce3 100644 --- a/vars/Fedora-24-default.yml +++ b/vars/Fedora-24-default.yml @@ -9,4 +9,3 @@ service_list: - name: 'dnf-automatic.timer' state: 'started' enabled: 'yes' - diff --git a/vars/Fedora-25-default.yml b/vars/Fedora-25-default.yml index cc81fbf..3483ce3 100644 --- a/vars/Fedora-25-default.yml +++ b/vars/Fedora-25-default.yml @@ -9,4 +9,3 @@ service_list: - name: 'dnf-automatic.timer' state: 'started' enabled: 'yes' - diff --git a/vars/Fedora-26-default.yml b/vars/Fedora-26-default.yml index cc81fbf..3483ce3 100644 --- a/vars/Fedora-26-default.yml +++ b/vars/Fedora-26-default.yml @@ -9,4 +9,3 @@ service_list: - name: 'dnf-automatic.timer' state: 'started' enabled: 'yes' - diff --git a/vars/Fedora-27-default.yml b/vars/Fedora-27-default.yml index cc81fbf..3483ce3 100644 --- a/vars/Fedora-27-default.yml +++ b/vars/Fedora-27-default.yml @@ -9,4 +9,3 @@ service_list: - name: 'dnf-automatic.timer' state: 'started' enabled: 'yes' - diff --git a/vars/Fedora-28-default.yml b/vars/Fedora-28-default.yml index cc81fbf..3483ce3 100644 --- a/vars/Fedora-28-default.yml +++ b/vars/Fedora-28-default.yml @@ -9,4 +9,3 @@ service_list: - name: 'dnf-automatic.timer' state: 'started' enabled: 'yes' - diff --git a/vars/Fedora-29-default.yml b/vars/Fedora-29-default.yml index cc81fbf..3483ce3 100644 --- a/vars/Fedora-29-default.yml +++ b/vars/Fedora-29-default.yml @@ -9,4 +9,3 @@ service_list: - name: 'dnf-automatic.timer' state: 'started' enabled: 'yes' - diff --git a/vars/Fedora-30-default.yml b/vars/Fedora-30-default.yml index cc81fbf..3483ce3 100644 --- a/vars/Fedora-30-default.yml +++ b/vars/Fedora-30-default.yml @@ -9,4 +9,3 @@ service_list: - name: 'dnf-automatic.timer' state: 'started' enabled: 'yes' - diff --git a/vars/Fedora-31-default.yml b/vars/Fedora-31-default.yml index cc81fbf..3483ce3 100644 --- a/vars/Fedora-31-default.yml +++ b/vars/Fedora-31-default.yml @@ -9,4 +9,3 @@ service_list: - name: 'dnf-automatic.timer' state: 'started' enabled: 'yes' - diff --git a/vars/Fedora-32-default.yml b/vars/Fedora-32-default.yml index cc81fbf..3483ce3 100644 --- a/vars/Fedora-32-default.yml +++ b/vars/Fedora-32-default.yml @@ -9,4 +9,3 @@ service_list: - name: 'dnf-automatic.timer' state: 'started' enabled: 'yes' - diff --git a/vars/Fedora-33-default.yml b/vars/Fedora-33-default.yml index cc81fbf..3483ce3 100644 --- a/vars/Fedora-33-default.yml +++ b/vars/Fedora-33-default.yml @@ -9,4 +9,3 @@ service_list: - name: 'dnf-automatic.timer' state: 'started' enabled: 'yes' - diff --git a/vars/Fedora-34-default.yml b/vars/Fedora-34-default.yml index cc81fbf..3483ce3 100644 --- a/vars/Fedora-34-default.yml +++ b/vars/Fedora-34-default.yml @@ -9,4 +9,3 @@ service_list: - name: 'dnf-automatic.timer' state: 'started' enabled: 'yes' - diff --git a/vars/Fedora-35-default.yml b/vars/Fedora-35-default.yml new file mode 100644 index 0000000..3483ce3 --- /dev/null +++ b/vars/Fedora-35-default.yml @@ -0,0 +1,11 @@ +--- +# vars file for ensure_os_patch +package_list: + - name: 'dnf-automatic' + state: 'present' + - name: '*' + state: 'latest' +service_list: + - name: 'dnf-automatic.timer' + state: 'started' + enabled: 'yes' From 3396998630daf261cc6140d842c5c8504dde555f Mon Sep 17 00:00:00 2001 From: Jason Rothstein Date: Sun, 5 Jun 2022 12:27:29 -0500 Subject: [PATCH 18/34] Add Fedora 36 --- vars/Fedora-36-default.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 vars/Fedora-36-default.yml diff --git a/vars/Fedora-36-default.yml b/vars/Fedora-36-default.yml new file mode 100644 index 0000000..3483ce3 --- /dev/null +++ b/vars/Fedora-36-default.yml @@ -0,0 +1,11 @@ +--- +# vars file for ensure_os_patch +package_list: + - name: 'dnf-automatic' + state: 'present' + - name: '*' + state: 'latest' +service_list: + - name: 'dnf-automatic.timer' + state: 'started' + enabled: 'yes' From 40e361c1c9b0ece7cccf75d6286750c9e5d2c1f3 Mon Sep 17 00:00:00 2001 From: Jason Rothstein Date: Sun, 5 Jun 2022 16:29:40 -0500 Subject: [PATCH 19/34] Update handlers --- handlers/main.yml | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/handlers/main.yml b/handlers/main.yml index 536e374..37bf9c8 100644 --- a/handlers/main.yml +++ b/handlers/main.yml @@ -4,4 +4,24 @@ ansible.builtin.package_facts: - name: 'ensure_os_patch.service_facts' ansible.builtin.service_facts: - +- name: 'ensure_os_patch.service_reload' + when: + - ansible_system == 'Linux' + - ansible_service_mgr == 'systemd' + - ensure_os_patch is defined + ansible.builtin.systemd: + daemon_reload: 'yes' +- name: 'ensure_os_patch.services' + when: + - ansible_system == 'Linux' + - ensure_os_patch is defined + - ensure_os_patch.service_list is defined + - ensure_os_patch.service_list is iterable + - item.state == 'started' + ansible.builtin.service: + enabled: '{{ item.enabled }}' + name: '{{ item.name }}' + state: 'restarted' + loop: '{{ ensure_os_patch.service_list }}' + loop_control: + label: '{{ item.name }} will be restarted' From 836c35a84c0fa8e725e602cbf3cf271287d42ba8 Mon Sep 17 00:00:00 2001 From: Jason Rothstein Date: Sun, 5 Jun 2022 16:48:06 -0500 Subject: [PATCH 20/34] UPdate tasks --- tasks/main.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/tasks/main.yml b/tasks/main.yml index 94b7ce5..6f63d72 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -51,7 +51,6 @@ - ensure_os_patch is defined - ensure_os_patch.package_list is defined - ensure_os_patch.package_list is iterable - - packages[item.name] is not defined ansible.builtin.package: name: '{{ item.name }}' state: '{{ item.state }}' From 59a2c9016e994ca3a38775bdbb38c57287a5eb08 Mon Sep 17 00:00:00 2001 From: Jason Rothstein Date: Mon, 3 Oct 2022 23:13:10 -0500 Subject: [PATCH 21/34] If we use dnf-automatic, install the packages too --- vars/CentOS-8-default.yml | 3 +++ vars/CentOS-9-default.yml | 14 ++++++++++++++ vars/Fedora-35-default.yml | 3 +++ vars/Fedora-36-default.yml | 3 +++ 4 files changed, 23 insertions(+) create mode 100644 vars/CentOS-9-default.yml diff --git a/vars/CentOS-8-default.yml b/vars/CentOS-8-default.yml index 3483ce3..ebd4420 100644 --- a/vars/CentOS-8-default.yml +++ b/vars/CentOS-8-default.yml @@ -9,3 +9,6 @@ service_list: - name: 'dnf-automatic.timer' state: 'started' enabled: 'yes' + - name: 'dnf-automatic-install.timer' + state: 'started' + enabled: 'yes' diff --git a/vars/CentOS-9-default.yml b/vars/CentOS-9-default.yml new file mode 100644 index 0000000..ebd4420 --- /dev/null +++ b/vars/CentOS-9-default.yml @@ -0,0 +1,14 @@ +--- +# vars file for ensure_os_patch +package_list: + - name: 'dnf-automatic' + state: 'present' + - name: '*' + state: 'latest' +service_list: + - name: 'dnf-automatic.timer' + state: 'started' + enabled: 'yes' + - name: 'dnf-automatic-install.timer' + state: 'started' + enabled: 'yes' diff --git a/vars/Fedora-35-default.yml b/vars/Fedora-35-default.yml index 3483ce3..ebd4420 100644 --- a/vars/Fedora-35-default.yml +++ b/vars/Fedora-35-default.yml @@ -9,3 +9,6 @@ service_list: - name: 'dnf-automatic.timer' state: 'started' enabled: 'yes' + - name: 'dnf-automatic-install.timer' + state: 'started' + enabled: 'yes' diff --git a/vars/Fedora-36-default.yml b/vars/Fedora-36-default.yml index 3483ce3..ebd4420 100644 --- a/vars/Fedora-36-default.yml +++ b/vars/Fedora-36-default.yml @@ -9,3 +9,6 @@ service_list: - name: 'dnf-automatic.timer' state: 'started' enabled: 'yes' + - name: 'dnf-automatic-install.timer' + state: 'started' + enabled: 'yes' From 4f178ab4f73517209bdaefabeb8e29abad55872f Mon Sep 17 00:00:00 2001 From: Jason Rothstein Date: Tue, 6 Dec 2022 20:36:06 -0600 Subject: [PATCH 22/34] Add Fedora 37 --- vars/Fedora-37-default.yml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 vars/Fedora-37-default.yml diff --git a/vars/Fedora-37-default.yml b/vars/Fedora-37-default.yml new file mode 100644 index 0000000..ebd4420 --- /dev/null +++ b/vars/Fedora-37-default.yml @@ -0,0 +1,14 @@ +--- +# vars file for ensure_os_patch +package_list: + - name: 'dnf-automatic' + state: 'present' + - name: '*' + state: 'latest' +service_list: + - name: 'dnf-automatic.timer' + state: 'started' + enabled: 'yes' + - name: 'dnf-automatic-install.timer' + state: 'started' + enabled: 'yes' From 30c82829f93c08f8b2e970443e0792751947e946 Mon Sep 17 00:00:00 2001 From: Jason Rothstein Date: Sat, 29 Apr 2023 20:15:16 -0500 Subject: [PATCH 23/34] Add Fedora 38 --- vars/Fedora-38-default.yml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 vars/Fedora-38-default.yml diff --git a/vars/Fedora-38-default.yml b/vars/Fedora-38-default.yml new file mode 100644 index 0000000..ebd4420 --- /dev/null +++ b/vars/Fedora-38-default.yml @@ -0,0 +1,14 @@ +--- +# vars file for ensure_os_patch +package_list: + - name: 'dnf-automatic' + state: 'present' + - name: '*' + state: 'latest' +service_list: + - name: 'dnf-automatic.timer' + state: 'started' + enabled: 'yes' + - name: 'dnf-automatic-install.timer' + state: 'started' + enabled: 'yes' From bc6f38718cba4da54dde016aed66d65aac712174 Mon Sep 17 00:00:00 2001 From: Jason Rothstein Date: Sat, 16 Mar 2024 20:23:11 -0500 Subject: [PATCH 24/34] Add Fedora 39 --- vars/Fedora-39-default.yml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 vars/Fedora-39-default.yml diff --git a/vars/Fedora-39-default.yml b/vars/Fedora-39-default.yml new file mode 100644 index 0000000..ebd4420 --- /dev/null +++ b/vars/Fedora-39-default.yml @@ -0,0 +1,14 @@ +--- +# vars file for ensure_os_patch +package_list: + - name: 'dnf-automatic' + state: 'present' + - name: '*' + state: 'latest' +service_list: + - name: 'dnf-automatic.timer' + state: 'started' + enabled: 'yes' + - name: 'dnf-automatic-install.timer' + state: 'started' + enabled: 'yes' From e5051ae34b228bfca83355b93dfc2502628dcf8b Mon Sep 17 00:00:00 2001 From: Jason Rothstein Date: Sun, 30 Jun 2024 13:42:58 -0500 Subject: [PATCH 25/34] Add Fedora 40, Alma/Oracle/Rocky 8 and 9 Signed-off-by: Jason Rothstein --- vars/AlmaLinux-8-default.yml | 14 ++++++++++++++ vars/AlmaLinux-9-default.yml | 14 ++++++++++++++ vars/Fedora-40-default.yml | 14 ++++++++++++++ vars/OracleLinux-8-default.yml | 14 ++++++++++++++ vars/OracleLinux-9-default.yml | 14 ++++++++++++++ vars/Rocky-8-default.yml | 14 ++++++++++++++ vars/Rocky-9-default.yml | 14 ++++++++++++++ 7 files changed, 98 insertions(+) create mode 100644 vars/AlmaLinux-8-default.yml create mode 100644 vars/AlmaLinux-9-default.yml create mode 100644 vars/Fedora-40-default.yml create mode 100644 vars/OracleLinux-8-default.yml create mode 100644 vars/OracleLinux-9-default.yml create mode 100644 vars/Rocky-8-default.yml create mode 100644 vars/Rocky-9-default.yml diff --git a/vars/AlmaLinux-8-default.yml b/vars/AlmaLinux-8-default.yml new file mode 100644 index 0000000..ebd4420 --- /dev/null +++ b/vars/AlmaLinux-8-default.yml @@ -0,0 +1,14 @@ +--- +# vars file for ensure_os_patch +package_list: + - name: 'dnf-automatic' + state: 'present' + - name: '*' + state: 'latest' +service_list: + - name: 'dnf-automatic.timer' + state: 'started' + enabled: 'yes' + - name: 'dnf-automatic-install.timer' + state: 'started' + enabled: 'yes' diff --git a/vars/AlmaLinux-9-default.yml b/vars/AlmaLinux-9-default.yml new file mode 100644 index 0000000..ebd4420 --- /dev/null +++ b/vars/AlmaLinux-9-default.yml @@ -0,0 +1,14 @@ +--- +# vars file for ensure_os_patch +package_list: + - name: 'dnf-automatic' + state: 'present' + - name: '*' + state: 'latest' +service_list: + - name: 'dnf-automatic.timer' + state: 'started' + enabled: 'yes' + - name: 'dnf-automatic-install.timer' + state: 'started' + enabled: 'yes' diff --git a/vars/Fedora-40-default.yml b/vars/Fedora-40-default.yml new file mode 100644 index 0000000..ebd4420 --- /dev/null +++ b/vars/Fedora-40-default.yml @@ -0,0 +1,14 @@ +--- +# vars file for ensure_os_patch +package_list: + - name: 'dnf-automatic' + state: 'present' + - name: '*' + state: 'latest' +service_list: + - name: 'dnf-automatic.timer' + state: 'started' + enabled: 'yes' + - name: 'dnf-automatic-install.timer' + state: 'started' + enabled: 'yes' diff --git a/vars/OracleLinux-8-default.yml b/vars/OracleLinux-8-default.yml new file mode 100644 index 0000000..ebd4420 --- /dev/null +++ b/vars/OracleLinux-8-default.yml @@ -0,0 +1,14 @@ +--- +# vars file for ensure_os_patch +package_list: + - name: 'dnf-automatic' + state: 'present' + - name: '*' + state: 'latest' +service_list: + - name: 'dnf-automatic.timer' + state: 'started' + enabled: 'yes' + - name: 'dnf-automatic-install.timer' + state: 'started' + enabled: 'yes' diff --git a/vars/OracleLinux-9-default.yml b/vars/OracleLinux-9-default.yml new file mode 100644 index 0000000..ebd4420 --- /dev/null +++ b/vars/OracleLinux-9-default.yml @@ -0,0 +1,14 @@ +--- +# vars file for ensure_os_patch +package_list: + - name: 'dnf-automatic' + state: 'present' + - name: '*' + state: 'latest' +service_list: + - name: 'dnf-automatic.timer' + state: 'started' + enabled: 'yes' + - name: 'dnf-automatic-install.timer' + state: 'started' + enabled: 'yes' diff --git a/vars/Rocky-8-default.yml b/vars/Rocky-8-default.yml new file mode 100644 index 0000000..ebd4420 --- /dev/null +++ b/vars/Rocky-8-default.yml @@ -0,0 +1,14 @@ +--- +# vars file for ensure_os_patch +package_list: + - name: 'dnf-automatic' + state: 'present' + - name: '*' + state: 'latest' +service_list: + - name: 'dnf-automatic.timer' + state: 'started' + enabled: 'yes' + - name: 'dnf-automatic-install.timer' + state: 'started' + enabled: 'yes' diff --git a/vars/Rocky-9-default.yml b/vars/Rocky-9-default.yml new file mode 100644 index 0000000..ebd4420 --- /dev/null +++ b/vars/Rocky-9-default.yml @@ -0,0 +1,14 @@ +--- +# vars file for ensure_os_patch +package_list: + - name: 'dnf-automatic' + state: 'present' + - name: '*' + state: 'latest' +service_list: + - name: 'dnf-automatic.timer' + state: 'started' + enabled: 'yes' + - name: 'dnf-automatic-install.timer' + state: 'started' + enabled: 'yes' From 4abec6bf41c16dd1b27da2473dbe3505b524b7d3 Mon Sep 17 00:00:00 2001 From: Jason Rothstein Date: Fri, 27 Dec 2024 15:52:41 -0600 Subject: [PATCH 26/34] Fedora 41 Signed-off-by: Jason Rothstein --- vars/Fedora-41-default.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 vars/Fedora-41-default.yml diff --git a/vars/Fedora-41-default.yml b/vars/Fedora-41-default.yml new file mode 100644 index 0000000..9a51583 --- /dev/null +++ b/vars/Fedora-41-default.yml @@ -0,0 +1,11 @@ +--- +# vars file for ensure_os_patch +package_list: + - name: 'dnf5-plugin-automatic' + state: 'present' + - name: '*' + state: 'latest' +service_list: + - name: 'dnf5-automatic.timer' + state: 'started' + enabled: 'yes' From 8c812db480b0be5a96d334ff3ebcd644ea153abf Mon Sep 17 00:00:00 2001 From: Jason Rothstein Date: Sun, 27 Apr 2025 12:39:58 -0500 Subject: [PATCH 27/34] Fedora 42 Signed-off-by: Jason Rothstein --- vars/Fedora-42-default.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 vars/Fedora-42-default.yml diff --git a/vars/Fedora-42-default.yml b/vars/Fedora-42-default.yml new file mode 100644 index 0000000..9a51583 --- /dev/null +++ b/vars/Fedora-42-default.yml @@ -0,0 +1,11 @@ +--- +# vars file for ensure_os_patch +package_list: + - name: 'dnf5-plugin-automatic' + state: 'present' + - name: '*' + state: 'latest' +service_list: + - name: 'dnf5-automatic.timer' + state: 'started' + enabled: 'yes' From 73725a87515e1827c89239388ad3b602a31d1a12 Mon Sep 17 00:00:00 2001 From: Jason Rothstein Date: Sun, 25 May 2025 20:11:36 -0500 Subject: [PATCH 28/34] Handler improvements Signed-off-by: Jason Rothstein --- handlers/main.yml | 4 +++- tasks/main.yml | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/handlers/main.yml b/handlers/main.yml index 37bf9c8..6017a18 100644 --- a/handlers/main.yml +++ b/handlers/main.yml @@ -11,7 +11,7 @@ - ensure_os_patch is defined ansible.builtin.systemd: daemon_reload: 'yes' -- name: 'ensure_os_patch.services' +- name: 'ensure_os_patch.service_restart' when: - ansible_system == 'Linux' - ensure_os_patch is defined @@ -25,3 +25,5 @@ loop: '{{ ensure_os_patch.service_list }}' loop_control: label: '{{ item.name }} will be restarted' +... + diff --git a/tasks/main.yml b/tasks/main.yml index 6f63d72..08852da 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -89,4 +89,5 @@ - 'ensure_os_patch.service_facts' - name: 'flush handlers' meta: 'flush_handlers' +... From a210d4edebb4c7d1bb03c17d146851607e558d55 Mon Sep 17 00:00:00 2001 From: Jason Rothstein Date: Mon, 9 Mar 2026 00:33:51 -0500 Subject: [PATCH 29/34] Add Fedora 43 and EL 10, and if using dnf/dnf5/yum package manager we patch by default, allowing duplicate data removal --- tasks/main.yml | 12 +++++++++++- vars/AlmaLinux-10-default.yml | 14 ++++++++++++++ vars/AlmaLinux-8-default.yml | 4 ++-- vars/AlmaLinux-9-default.yml | 4 ++-- vars/CentOS-10-default.yml | 14 ++++++++++++++ vars/CentOS-6-default.yml | 5 ----- vars/CentOS-7-default.yml | 5 ----- vars/CentOS-8-default.yml | 4 ++-- vars/CentOS-9-default.yml | 4 ++-- vars/Fedora-21-default.yml | 4 ++-- vars/Fedora-22-default.yml | 4 ++-- vars/Fedora-23-default.yml | 4 ++-- vars/Fedora-24-default.yml | 4 ++-- vars/Fedora-25-default.yml | 4 ++-- vars/Fedora-26-default.yml | 4 ++-- vars/Fedora-27-default.yml | 4 ++-- vars/Fedora-28-default.yml | 4 ++-- vars/Fedora-29-default.yml | 4 ++-- vars/Fedora-30-default.yml | 4 ++-- vars/Fedora-31-default.yml | 4 ++-- vars/Fedora-32-default.yml | 4 ++-- vars/Fedora-33-default.yml | 4 ++-- vars/Fedora-34-default.yml | 4 ++-- vars/Fedora-35-default.yml | 7 ++----- vars/Fedora-36-default.yml | 7 ++----- vars/Fedora-37-default.yml | 7 ++----- vars/Fedora-38-default.yml | 7 ++----- vars/Fedora-39-default.yml | 7 ++----- vars/Fedora-40-default.yml | 7 ++----- vars/Fedora-41-default.yml | 3 +-- vars/Fedora-42-default.yml | 3 +-- vars/Fedora-43-default.yml | 10 ++++++++++ vars/OracleLinux-10-default.yml | 13 +++++++++++++ vars/OracleLinux-8-default.yml | 3 +-- vars/OracleLinux-9-default.yml | 3 +-- vars/Rocky-10-default.yml | 13 +++++++++++++ vars/Rocky-8-default.yml | 3 +-- vars/Rocky-9-default.yml | 3 +-- 38 files changed, 129 insertions(+), 89 deletions(-) create mode 100644 vars/AlmaLinux-10-default.yml create mode 100644 vars/CentOS-10-default.yml delete mode 100644 vars/CentOS-6-default.yml delete mode 100644 vars/CentOS-7-default.yml create mode 100644 vars/Fedora-43-default.yml create mode 100644 vars/OracleLinux-10-default.yml create mode 100644 vars/Rocky-10-default.yml diff --git a/tasks/main.yml b/tasks/main.yml index 08852da..f0cfcf8 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -60,7 +60,7 @@ notify: - 'ensure_os_patch.package_facts' - 'ensure_os_patch.service_facts' -- name: 'ensure Debian patch' +- name: 'ensure apt patch' when: - ansible_system == 'Linux' - ansible_pkg_mgr == 'apt' @@ -71,6 +71,16 @@ notify: - 'ensure_os_patch.package_facts' - 'ensure_os_patch.service_facts' +- name: 'ensure dnf or yum patch' + when: + - ansible_system == 'Linux' + - ansible_pkg_mgr == 'dnf' or ansible_pkg_mgr == 'dnf5' or ansible_pkg_mgr == 'yum' + ansible.builtin.package: + name: '*' + state: 'latest' + notify: + - 'ensure_os_patch.package_facts' + - 'ensure_os_patch.service_facts' - name: 'ensure services' when: - ansible_system == 'Linux' diff --git a/vars/AlmaLinux-10-default.yml b/vars/AlmaLinux-10-default.yml new file mode 100644 index 0000000..a85d5d6 --- /dev/null +++ b/vars/AlmaLinux-10-default.yml @@ -0,0 +1,14 @@ +--- +# vars file for ensure_os_patch +package_list: + - name: 'dnf-automatic' + state: 'present' +service_list: + - name: 'dnf-automatic.timer' + state: 'started' + enabled: 'yes' + - name: 'dnf-automatic-install.timer' + state: 'started' + enabled: 'yes' +... + diff --git a/vars/AlmaLinux-8-default.yml b/vars/AlmaLinux-8-default.yml index ebd4420..a85d5d6 100644 --- a/vars/AlmaLinux-8-default.yml +++ b/vars/AlmaLinux-8-default.yml @@ -3,8 +3,6 @@ package_list: - name: 'dnf-automatic' state: 'present' - - name: '*' - state: 'latest' service_list: - name: 'dnf-automatic.timer' state: 'started' @@ -12,3 +10,5 @@ service_list: - name: 'dnf-automatic-install.timer' state: 'started' enabled: 'yes' +... + diff --git a/vars/AlmaLinux-9-default.yml b/vars/AlmaLinux-9-default.yml index ebd4420..a85d5d6 100644 --- a/vars/AlmaLinux-9-default.yml +++ b/vars/AlmaLinux-9-default.yml @@ -3,8 +3,6 @@ package_list: - name: 'dnf-automatic' state: 'present' - - name: '*' - state: 'latest' service_list: - name: 'dnf-automatic.timer' state: 'started' @@ -12,3 +10,5 @@ service_list: - name: 'dnf-automatic-install.timer' state: 'started' enabled: 'yes' +... + diff --git a/vars/CentOS-10-default.yml b/vars/CentOS-10-default.yml new file mode 100644 index 0000000..a85d5d6 --- /dev/null +++ b/vars/CentOS-10-default.yml @@ -0,0 +1,14 @@ +--- +# vars file for ensure_os_patch +package_list: + - name: 'dnf-automatic' + state: 'present' +service_list: + - name: 'dnf-automatic.timer' + state: 'started' + enabled: 'yes' + - name: 'dnf-automatic-install.timer' + state: 'started' + enabled: 'yes' +... + diff --git a/vars/CentOS-6-default.yml b/vars/CentOS-6-default.yml deleted file mode 100644 index 5578b25..0000000 --- a/vars/CentOS-6-default.yml +++ /dev/null @@ -1,5 +0,0 @@ ---- -# vars file for ensure_os_patch -package_list: - - name: '*' - state: 'latest' diff --git a/vars/CentOS-7-default.yml b/vars/CentOS-7-default.yml deleted file mode 100644 index 5578b25..0000000 --- a/vars/CentOS-7-default.yml +++ /dev/null @@ -1,5 +0,0 @@ ---- -# vars file for ensure_os_patch -package_list: - - name: '*' - state: 'latest' diff --git a/vars/CentOS-8-default.yml b/vars/CentOS-8-default.yml index ebd4420..a85d5d6 100644 --- a/vars/CentOS-8-default.yml +++ b/vars/CentOS-8-default.yml @@ -3,8 +3,6 @@ package_list: - name: 'dnf-automatic' state: 'present' - - name: '*' - state: 'latest' service_list: - name: 'dnf-automatic.timer' state: 'started' @@ -12,3 +10,5 @@ service_list: - name: 'dnf-automatic-install.timer' state: 'started' enabled: 'yes' +... + diff --git a/vars/CentOS-9-default.yml b/vars/CentOS-9-default.yml index ebd4420..a85d5d6 100644 --- a/vars/CentOS-9-default.yml +++ b/vars/CentOS-9-default.yml @@ -3,8 +3,6 @@ package_list: - name: 'dnf-automatic' state: 'present' - - name: '*' - state: 'latest' service_list: - name: 'dnf-automatic.timer' state: 'started' @@ -12,3 +10,5 @@ service_list: - name: 'dnf-automatic-install.timer' state: 'started' enabled: 'yes' +... + diff --git a/vars/Fedora-21-default.yml b/vars/Fedora-21-default.yml index 3483ce3..2945494 100644 --- a/vars/Fedora-21-default.yml +++ b/vars/Fedora-21-default.yml @@ -3,9 +3,9 @@ package_list: - name: 'dnf-automatic' state: 'present' - - name: '*' - state: 'latest' service_list: - name: 'dnf-automatic.timer' state: 'started' enabled: 'yes' +... + diff --git a/vars/Fedora-22-default.yml b/vars/Fedora-22-default.yml index 3483ce3..2945494 100644 --- a/vars/Fedora-22-default.yml +++ b/vars/Fedora-22-default.yml @@ -3,9 +3,9 @@ package_list: - name: 'dnf-automatic' state: 'present' - - name: '*' - state: 'latest' service_list: - name: 'dnf-automatic.timer' state: 'started' enabled: 'yes' +... + diff --git a/vars/Fedora-23-default.yml b/vars/Fedora-23-default.yml index 3483ce3..2945494 100644 --- a/vars/Fedora-23-default.yml +++ b/vars/Fedora-23-default.yml @@ -3,9 +3,9 @@ package_list: - name: 'dnf-automatic' state: 'present' - - name: '*' - state: 'latest' service_list: - name: 'dnf-automatic.timer' state: 'started' enabled: 'yes' +... + diff --git a/vars/Fedora-24-default.yml b/vars/Fedora-24-default.yml index 3483ce3..2945494 100644 --- a/vars/Fedora-24-default.yml +++ b/vars/Fedora-24-default.yml @@ -3,9 +3,9 @@ package_list: - name: 'dnf-automatic' state: 'present' - - name: '*' - state: 'latest' service_list: - name: 'dnf-automatic.timer' state: 'started' enabled: 'yes' +... + diff --git a/vars/Fedora-25-default.yml b/vars/Fedora-25-default.yml index 3483ce3..2945494 100644 --- a/vars/Fedora-25-default.yml +++ b/vars/Fedora-25-default.yml @@ -3,9 +3,9 @@ package_list: - name: 'dnf-automatic' state: 'present' - - name: '*' - state: 'latest' service_list: - name: 'dnf-automatic.timer' state: 'started' enabled: 'yes' +... + diff --git a/vars/Fedora-26-default.yml b/vars/Fedora-26-default.yml index 3483ce3..2945494 100644 --- a/vars/Fedora-26-default.yml +++ b/vars/Fedora-26-default.yml @@ -3,9 +3,9 @@ package_list: - name: 'dnf-automatic' state: 'present' - - name: '*' - state: 'latest' service_list: - name: 'dnf-automatic.timer' state: 'started' enabled: 'yes' +... + diff --git a/vars/Fedora-27-default.yml b/vars/Fedora-27-default.yml index 3483ce3..2945494 100644 --- a/vars/Fedora-27-default.yml +++ b/vars/Fedora-27-default.yml @@ -3,9 +3,9 @@ package_list: - name: 'dnf-automatic' state: 'present' - - name: '*' - state: 'latest' service_list: - name: 'dnf-automatic.timer' state: 'started' enabled: 'yes' +... + diff --git a/vars/Fedora-28-default.yml b/vars/Fedora-28-default.yml index 3483ce3..2945494 100644 --- a/vars/Fedora-28-default.yml +++ b/vars/Fedora-28-default.yml @@ -3,9 +3,9 @@ package_list: - name: 'dnf-automatic' state: 'present' - - name: '*' - state: 'latest' service_list: - name: 'dnf-automatic.timer' state: 'started' enabled: 'yes' +... + diff --git a/vars/Fedora-29-default.yml b/vars/Fedora-29-default.yml index 3483ce3..2945494 100644 --- a/vars/Fedora-29-default.yml +++ b/vars/Fedora-29-default.yml @@ -3,9 +3,9 @@ package_list: - name: 'dnf-automatic' state: 'present' - - name: '*' - state: 'latest' service_list: - name: 'dnf-automatic.timer' state: 'started' enabled: 'yes' +... + diff --git a/vars/Fedora-30-default.yml b/vars/Fedora-30-default.yml index 3483ce3..2945494 100644 --- a/vars/Fedora-30-default.yml +++ b/vars/Fedora-30-default.yml @@ -3,9 +3,9 @@ package_list: - name: 'dnf-automatic' state: 'present' - - name: '*' - state: 'latest' service_list: - name: 'dnf-automatic.timer' state: 'started' enabled: 'yes' +... + diff --git a/vars/Fedora-31-default.yml b/vars/Fedora-31-default.yml index 3483ce3..2945494 100644 --- a/vars/Fedora-31-default.yml +++ b/vars/Fedora-31-default.yml @@ -3,9 +3,9 @@ package_list: - name: 'dnf-automatic' state: 'present' - - name: '*' - state: 'latest' service_list: - name: 'dnf-automatic.timer' state: 'started' enabled: 'yes' +... + diff --git a/vars/Fedora-32-default.yml b/vars/Fedora-32-default.yml index 3483ce3..2945494 100644 --- a/vars/Fedora-32-default.yml +++ b/vars/Fedora-32-default.yml @@ -3,9 +3,9 @@ package_list: - name: 'dnf-automatic' state: 'present' - - name: '*' - state: 'latest' service_list: - name: 'dnf-automatic.timer' state: 'started' enabled: 'yes' +... + diff --git a/vars/Fedora-33-default.yml b/vars/Fedora-33-default.yml index 3483ce3..2945494 100644 --- a/vars/Fedora-33-default.yml +++ b/vars/Fedora-33-default.yml @@ -3,9 +3,9 @@ package_list: - name: 'dnf-automatic' state: 'present' - - name: '*' - state: 'latest' service_list: - name: 'dnf-automatic.timer' state: 'started' enabled: 'yes' +... + diff --git a/vars/Fedora-34-default.yml b/vars/Fedora-34-default.yml index 3483ce3..2945494 100644 --- a/vars/Fedora-34-default.yml +++ b/vars/Fedora-34-default.yml @@ -3,9 +3,9 @@ package_list: - name: 'dnf-automatic' state: 'present' - - name: '*' - state: 'latest' service_list: - name: 'dnf-automatic.timer' state: 'started' enabled: 'yes' +... + diff --git a/vars/Fedora-35-default.yml b/vars/Fedora-35-default.yml index ebd4420..2945494 100644 --- a/vars/Fedora-35-default.yml +++ b/vars/Fedora-35-default.yml @@ -3,12 +3,9 @@ package_list: - name: 'dnf-automatic' state: 'present' - - name: '*' - state: 'latest' service_list: - name: 'dnf-automatic.timer' state: 'started' enabled: 'yes' - - name: 'dnf-automatic-install.timer' - state: 'started' - enabled: 'yes' +... + diff --git a/vars/Fedora-36-default.yml b/vars/Fedora-36-default.yml index ebd4420..2945494 100644 --- a/vars/Fedora-36-default.yml +++ b/vars/Fedora-36-default.yml @@ -3,12 +3,9 @@ package_list: - name: 'dnf-automatic' state: 'present' - - name: '*' - state: 'latest' service_list: - name: 'dnf-automatic.timer' state: 'started' enabled: 'yes' - - name: 'dnf-automatic-install.timer' - state: 'started' - enabled: 'yes' +... + diff --git a/vars/Fedora-37-default.yml b/vars/Fedora-37-default.yml index ebd4420..2945494 100644 --- a/vars/Fedora-37-default.yml +++ b/vars/Fedora-37-default.yml @@ -3,12 +3,9 @@ package_list: - name: 'dnf-automatic' state: 'present' - - name: '*' - state: 'latest' service_list: - name: 'dnf-automatic.timer' state: 'started' enabled: 'yes' - - name: 'dnf-automatic-install.timer' - state: 'started' - enabled: 'yes' +... + diff --git a/vars/Fedora-38-default.yml b/vars/Fedora-38-default.yml index ebd4420..2945494 100644 --- a/vars/Fedora-38-default.yml +++ b/vars/Fedora-38-default.yml @@ -3,12 +3,9 @@ package_list: - name: 'dnf-automatic' state: 'present' - - name: '*' - state: 'latest' service_list: - name: 'dnf-automatic.timer' state: 'started' enabled: 'yes' - - name: 'dnf-automatic-install.timer' - state: 'started' - enabled: 'yes' +... + diff --git a/vars/Fedora-39-default.yml b/vars/Fedora-39-default.yml index ebd4420..2945494 100644 --- a/vars/Fedora-39-default.yml +++ b/vars/Fedora-39-default.yml @@ -3,12 +3,9 @@ package_list: - name: 'dnf-automatic' state: 'present' - - name: '*' - state: 'latest' service_list: - name: 'dnf-automatic.timer' state: 'started' enabled: 'yes' - - name: 'dnf-automatic-install.timer' - state: 'started' - enabled: 'yes' +... + diff --git a/vars/Fedora-40-default.yml b/vars/Fedora-40-default.yml index ebd4420..2945494 100644 --- a/vars/Fedora-40-default.yml +++ b/vars/Fedora-40-default.yml @@ -3,12 +3,9 @@ package_list: - name: 'dnf-automatic' state: 'present' - - name: '*' - state: 'latest' service_list: - name: 'dnf-automatic.timer' state: 'started' enabled: 'yes' - - name: 'dnf-automatic-install.timer' - state: 'started' - enabled: 'yes' +... + diff --git a/vars/Fedora-41-default.yml b/vars/Fedora-41-default.yml index 9a51583..ddda6ef 100644 --- a/vars/Fedora-41-default.yml +++ b/vars/Fedora-41-default.yml @@ -3,9 +3,8 @@ package_list: - name: 'dnf5-plugin-automatic' state: 'present' - - name: '*' - state: 'latest' service_list: - name: 'dnf5-automatic.timer' state: 'started' enabled: 'yes' +... diff --git a/vars/Fedora-42-default.yml b/vars/Fedora-42-default.yml index 9a51583..ddda6ef 100644 --- a/vars/Fedora-42-default.yml +++ b/vars/Fedora-42-default.yml @@ -3,9 +3,8 @@ package_list: - name: 'dnf5-plugin-automatic' state: 'present' - - name: '*' - state: 'latest' service_list: - name: 'dnf5-automatic.timer' state: 'started' enabled: 'yes' +... diff --git a/vars/Fedora-43-default.yml b/vars/Fedora-43-default.yml new file mode 100644 index 0000000..ddda6ef --- /dev/null +++ b/vars/Fedora-43-default.yml @@ -0,0 +1,10 @@ +--- +# vars file for ensure_os_patch +package_list: + - name: 'dnf5-plugin-automatic' + state: 'present' +service_list: + - name: 'dnf5-automatic.timer' + state: 'started' + enabled: 'yes' +... diff --git a/vars/OracleLinux-10-default.yml b/vars/OracleLinux-10-default.yml new file mode 100644 index 0000000..9c4bbbd --- /dev/null +++ b/vars/OracleLinux-10-default.yml @@ -0,0 +1,13 @@ +--- +# vars file for ensure_os_patch +package_list: + - name: 'dnf-automatic' + state: 'present' +service_list: + - name: 'dnf-automatic.timer' + state: 'started' + enabled: 'yes' + - name: 'dnf-automatic-install.timer' + state: 'started' + enabled: 'yes' +... diff --git a/vars/OracleLinux-8-default.yml b/vars/OracleLinux-8-default.yml index ebd4420..9c4bbbd 100644 --- a/vars/OracleLinux-8-default.yml +++ b/vars/OracleLinux-8-default.yml @@ -3,8 +3,6 @@ package_list: - name: 'dnf-automatic' state: 'present' - - name: '*' - state: 'latest' service_list: - name: 'dnf-automatic.timer' state: 'started' @@ -12,3 +10,4 @@ service_list: - name: 'dnf-automatic-install.timer' state: 'started' enabled: 'yes' +... diff --git a/vars/OracleLinux-9-default.yml b/vars/OracleLinux-9-default.yml index ebd4420..9c4bbbd 100644 --- a/vars/OracleLinux-9-default.yml +++ b/vars/OracleLinux-9-default.yml @@ -3,8 +3,6 @@ package_list: - name: 'dnf-automatic' state: 'present' - - name: '*' - state: 'latest' service_list: - name: 'dnf-automatic.timer' state: 'started' @@ -12,3 +10,4 @@ service_list: - name: 'dnf-automatic-install.timer' state: 'started' enabled: 'yes' +... diff --git a/vars/Rocky-10-default.yml b/vars/Rocky-10-default.yml new file mode 100644 index 0000000..9c4bbbd --- /dev/null +++ b/vars/Rocky-10-default.yml @@ -0,0 +1,13 @@ +--- +# vars file for ensure_os_patch +package_list: + - name: 'dnf-automatic' + state: 'present' +service_list: + - name: 'dnf-automatic.timer' + state: 'started' + enabled: 'yes' + - name: 'dnf-automatic-install.timer' + state: 'started' + enabled: 'yes' +... diff --git a/vars/Rocky-8-default.yml b/vars/Rocky-8-default.yml index ebd4420..9c4bbbd 100644 --- a/vars/Rocky-8-default.yml +++ b/vars/Rocky-8-default.yml @@ -3,8 +3,6 @@ package_list: - name: 'dnf-automatic' state: 'present' - - name: '*' - state: 'latest' service_list: - name: 'dnf-automatic.timer' state: 'started' @@ -12,3 +10,4 @@ service_list: - name: 'dnf-automatic-install.timer' state: 'started' enabled: 'yes' +... diff --git a/vars/Rocky-9-default.yml b/vars/Rocky-9-default.yml index ebd4420..9c4bbbd 100644 --- a/vars/Rocky-9-default.yml +++ b/vars/Rocky-9-default.yml @@ -3,8 +3,6 @@ package_list: - name: 'dnf-automatic' state: 'present' - - name: '*' - state: 'latest' service_list: - name: 'dnf-automatic.timer' state: 'started' @@ -12,3 +10,4 @@ service_list: - name: 'dnf-automatic-install.timer' state: 'started' enabled: 'yes' +... From 192cf375f50c0ed90d1e2bd3a1945f542fd8c3b2 Mon Sep 17 00:00:00 2001 From: Jason Rothstein Date: Wed, 29 Apr 2026 23:51:56 -0500 Subject: [PATCH 30/34] Fedora 44 --- vars/Fedora-44-default.yml | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 vars/Fedora-44-default.yml diff --git a/vars/Fedora-44-default.yml b/vars/Fedora-44-default.yml new file mode 100644 index 0000000..ddda6ef --- /dev/null +++ b/vars/Fedora-44-default.yml @@ -0,0 +1,10 @@ +--- +# vars file for ensure_os_patch +package_list: + - name: 'dnf5-plugin-automatic' + state: 'present' +service_list: + - name: 'dnf5-automatic.timer' + state: 'started' + enabled: 'yes' +... From 113cc38efb3db573abbc52f7ee1667b9eb695e72 Mon Sep 17 00:00:00 2001 From: Jason Rothstein Date: Mon, 4 May 2026 21:21:20 -0500 Subject: [PATCH 31/34] Fix ansible core 2.20 changes and remove OS that are out of support Signed-off-by: Jason Rothstein --- tasks/Debian-default.yml | 5 +++-- tasks/main.yml | 44 +++++++++++++++++++------------------- vars/Fedora-21-default.yml | 11 ---------- vars/Fedora-22-default.yml | 11 ---------- vars/Fedora-23-default.yml | 11 ---------- vars/Fedora-24-default.yml | 11 ---------- vars/Fedora-25-default.yml | 11 ---------- vars/Fedora-26-default.yml | 11 ---------- vars/Fedora-27-default.yml | 11 ---------- vars/Fedora-28-default.yml | 11 ---------- vars/Fedora-29-default.yml | 11 ---------- vars/Fedora-30-default.yml | 11 ---------- vars/Fedora-31-default.yml | 11 ---------- vars/Fedora-32-default.yml | 11 ---------- vars/Fedora-33-default.yml | 11 ---------- vars/Fedora-34-default.yml | 11 ---------- vars/Fedora-35-default.yml | 11 ---------- vars/Fedora-36-default.yml | 11 ---------- vars/Fedora-37-default.yml | 11 ---------- vars/Fedora-38-default.yml | 11 ---------- vars/Fedora-39-default.yml | 11 ---------- vars/Fedora-40-default.yml | 11 ---------- vars/Fedora-41-default.yml | 10 --------- 23 files changed, 25 insertions(+), 254 deletions(-) delete mode 100644 vars/Fedora-21-default.yml delete mode 100644 vars/Fedora-22-default.yml delete mode 100644 vars/Fedora-23-default.yml delete mode 100644 vars/Fedora-24-default.yml delete mode 100644 vars/Fedora-25-default.yml delete mode 100644 vars/Fedora-26-default.yml delete mode 100644 vars/Fedora-27-default.yml delete mode 100644 vars/Fedora-28-default.yml delete mode 100644 vars/Fedora-29-default.yml delete mode 100644 vars/Fedora-30-default.yml delete mode 100644 vars/Fedora-31-default.yml delete mode 100644 vars/Fedora-32-default.yml delete mode 100644 vars/Fedora-33-default.yml delete mode 100644 vars/Fedora-34-default.yml delete mode 100644 vars/Fedora-35-default.yml delete mode 100644 vars/Fedora-36-default.yml delete mode 100644 vars/Fedora-37-default.yml delete mode 100644 vars/Fedora-38-default.yml delete mode 100644 vars/Fedora-39-default.yml delete mode 100644 vars/Fedora-40-default.yml delete mode 100644 vars/Fedora-41-default.yml diff --git a/tasks/Debian-default.yml b/tasks/Debian-default.yml index 2d2f16a..8d20d2f 100644 --- a/tasks/Debian-default.yml +++ b/tasks/Debian-default.yml @@ -2,8 +2,8 @@ # tasks file for ensure_os_patch - name: 'ensure Debian patch' when: - - ansible_system == 'Linux' - - ansible_pkg_mgr == 'apt' + - ansible_facts["system"] == 'Linux' + - ansible_facts["pkg_mgr"]== 'apt' ansible.builtin.apt: autoclean: 'yes' autoremove: 'yes' @@ -13,4 +13,5 @@ - 'ensure_os_patch.service_facts' - name: 'flush handlers' meta: 'flush_handlers' +... diff --git a/tasks/main.yml b/tasks/main.yml index f0cfcf8..15eb575 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -2,52 +2,52 @@ # tasks file for ensure_os_patch - name: 'include vendor / version specific tasks' when: - - ansible_system == 'Linux' + - ansible_facts["system"] == 'Linux' include_tasks: file: '{{ lookup("first_found", findme ) }}' 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' + - '{{ ansible_facts["distribution"] }}-{{ ansible_facts["distribution_major_version"] }}-{{ ansible_facts["architecture"] }}.yml' + - '{{ ansible_facts["distribution"] }}-{{ ansible_facts["distribution_major_version"] }}-default.yml' + - '{{ ansible_facts["distribution"] }}-default.yml' + - '{{ ansible_facts["os_family"] }}-{{ ansible_facts["distribution_major_version"] }}-{{ ansible_facts["architecture"] }}.yml' + - '{{ ansible_facts["os_family"] }}-{{ ansible_facts["distribution_major_version"] }}-default.yml' + - '{{ ansible_facts["os_family"] }}-default.yml' - 'default.yml' errors: 'ignore' - name: 'include variables' when: - - ansible_system == 'Linux' + - ansible_facts["system"] == 'Linux' include_vars: file: '{{ lookup("first_found", findme ) }}' name: 'ensure_os_patch' 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' + - '{{ ansible_facts["distribution"] }}-{{ ansible_facts["distribution_major_version"] }}-{{ ansible_facts["architecture"] }}.yml' + - '{{ ansible_facts["distribution"] }}-{{ ansible_facts["distribution_major_version"] }}-default.yml' + - '{{ ansible_facts["distribution"] }}-default.yml' + - '{{ ansible_facts["os_family"] }}-{{ ansible_facts["distribution_major_version"] }}-{{ ansible_facts["architecture"] }}.yml' + - '{{ ansible_facts["os_family"] }}-{{ ansible_facts["distribution_major_version"] }}-default.yml' + - '{{ ansible_facts["os_family"] }}-default.yml' - 'default.yml' paths: - '../vars/' errors: 'ignore' - name: 'package discovery' when: - - ansible_system == 'Linux' + - ansible_facts["system"] == 'Linux' - packages is not defined ansible.builtin.package_facts: - name: 'service discovery' when: - - ansible_system == 'Linux' + - ansible_facts["system"] == 'Linux' - services is not defined ansible.builtin.service_facts: - name: 'ensure packages' when: - - ansible_system == 'Linux' + - ansible_facts["system"] == 'Linux' - ensure_os_patch is defined - ensure_os_patch.package_list is defined - ensure_os_patch.package_list is iterable @@ -62,8 +62,8 @@ - 'ensure_os_patch.service_facts' - name: 'ensure apt patch' when: - - ansible_system == 'Linux' - - ansible_pkg_mgr == 'apt' + - ansible_facts["system"] == 'Linux' + - ansible_facts["pkg_mgr"] == 'apt' ansible.builtin.apt: autoclean: 'yes' autoremove: 'yes' @@ -73,8 +73,8 @@ - 'ensure_os_patch.service_facts' - name: 'ensure dnf or yum patch' when: - - ansible_system == 'Linux' - - ansible_pkg_mgr == 'dnf' or ansible_pkg_mgr == 'dnf5' or ansible_pkg_mgr == 'yum' + - ansible_facts["system"] == 'Linux' + - ansible_facts["pkg_mgr"] == 'dnf' or ansible_facts["pkg_mgr"] == 'dnf5' or ansible_facts["pkg_mgr"] == 'yum' ansible.builtin.package: name: '*' state: 'latest' @@ -83,7 +83,7 @@ - 'ensure_os_patch.service_facts' - name: 'ensure services' when: - - ansible_system == 'Linux' + - ansible_facts["system"] == 'Linux' - ensure_os_patch is defined - ensure_os_patch.service_list is defined - ensure_os_patch.service_list is iterable diff --git a/vars/Fedora-21-default.yml b/vars/Fedora-21-default.yml deleted file mode 100644 index 2945494..0000000 --- a/vars/Fedora-21-default.yml +++ /dev/null @@ -1,11 +0,0 @@ ---- -# vars file for ensure_os_patch -package_list: - - name: 'dnf-automatic' - state: 'present' -service_list: - - name: 'dnf-automatic.timer' - state: 'started' - enabled: 'yes' -... - diff --git a/vars/Fedora-22-default.yml b/vars/Fedora-22-default.yml deleted file mode 100644 index 2945494..0000000 --- a/vars/Fedora-22-default.yml +++ /dev/null @@ -1,11 +0,0 @@ ---- -# vars file for ensure_os_patch -package_list: - - name: 'dnf-automatic' - state: 'present' -service_list: - - name: 'dnf-automatic.timer' - state: 'started' - enabled: 'yes' -... - diff --git a/vars/Fedora-23-default.yml b/vars/Fedora-23-default.yml deleted file mode 100644 index 2945494..0000000 --- a/vars/Fedora-23-default.yml +++ /dev/null @@ -1,11 +0,0 @@ ---- -# vars file for ensure_os_patch -package_list: - - name: 'dnf-automatic' - state: 'present' -service_list: - - name: 'dnf-automatic.timer' - state: 'started' - enabled: 'yes' -... - diff --git a/vars/Fedora-24-default.yml b/vars/Fedora-24-default.yml deleted file mode 100644 index 2945494..0000000 --- a/vars/Fedora-24-default.yml +++ /dev/null @@ -1,11 +0,0 @@ ---- -# vars file for ensure_os_patch -package_list: - - name: 'dnf-automatic' - state: 'present' -service_list: - - name: 'dnf-automatic.timer' - state: 'started' - enabled: 'yes' -... - diff --git a/vars/Fedora-25-default.yml b/vars/Fedora-25-default.yml deleted file mode 100644 index 2945494..0000000 --- a/vars/Fedora-25-default.yml +++ /dev/null @@ -1,11 +0,0 @@ ---- -# vars file for ensure_os_patch -package_list: - - name: 'dnf-automatic' - state: 'present' -service_list: - - name: 'dnf-automatic.timer' - state: 'started' - enabled: 'yes' -... - diff --git a/vars/Fedora-26-default.yml b/vars/Fedora-26-default.yml deleted file mode 100644 index 2945494..0000000 --- a/vars/Fedora-26-default.yml +++ /dev/null @@ -1,11 +0,0 @@ ---- -# vars file for ensure_os_patch -package_list: - - name: 'dnf-automatic' - state: 'present' -service_list: - - name: 'dnf-automatic.timer' - state: 'started' - enabled: 'yes' -... - diff --git a/vars/Fedora-27-default.yml b/vars/Fedora-27-default.yml deleted file mode 100644 index 2945494..0000000 --- a/vars/Fedora-27-default.yml +++ /dev/null @@ -1,11 +0,0 @@ ---- -# vars file for ensure_os_patch -package_list: - - name: 'dnf-automatic' - state: 'present' -service_list: - - name: 'dnf-automatic.timer' - state: 'started' - enabled: 'yes' -... - diff --git a/vars/Fedora-28-default.yml b/vars/Fedora-28-default.yml deleted file mode 100644 index 2945494..0000000 --- a/vars/Fedora-28-default.yml +++ /dev/null @@ -1,11 +0,0 @@ ---- -# vars file for ensure_os_patch -package_list: - - name: 'dnf-automatic' - state: 'present' -service_list: - - name: 'dnf-automatic.timer' - state: 'started' - enabled: 'yes' -... - diff --git a/vars/Fedora-29-default.yml b/vars/Fedora-29-default.yml deleted file mode 100644 index 2945494..0000000 --- a/vars/Fedora-29-default.yml +++ /dev/null @@ -1,11 +0,0 @@ ---- -# vars file for ensure_os_patch -package_list: - - name: 'dnf-automatic' - state: 'present' -service_list: - - name: 'dnf-automatic.timer' - state: 'started' - enabled: 'yes' -... - diff --git a/vars/Fedora-30-default.yml b/vars/Fedora-30-default.yml deleted file mode 100644 index 2945494..0000000 --- a/vars/Fedora-30-default.yml +++ /dev/null @@ -1,11 +0,0 @@ ---- -# vars file for ensure_os_patch -package_list: - - name: 'dnf-automatic' - state: 'present' -service_list: - - name: 'dnf-automatic.timer' - state: 'started' - enabled: 'yes' -... - diff --git a/vars/Fedora-31-default.yml b/vars/Fedora-31-default.yml deleted file mode 100644 index 2945494..0000000 --- a/vars/Fedora-31-default.yml +++ /dev/null @@ -1,11 +0,0 @@ ---- -# vars file for ensure_os_patch -package_list: - - name: 'dnf-automatic' - state: 'present' -service_list: - - name: 'dnf-automatic.timer' - state: 'started' - enabled: 'yes' -... - diff --git a/vars/Fedora-32-default.yml b/vars/Fedora-32-default.yml deleted file mode 100644 index 2945494..0000000 --- a/vars/Fedora-32-default.yml +++ /dev/null @@ -1,11 +0,0 @@ ---- -# vars file for ensure_os_patch -package_list: - - name: 'dnf-automatic' - state: 'present' -service_list: - - name: 'dnf-automatic.timer' - state: 'started' - enabled: 'yes' -... - diff --git a/vars/Fedora-33-default.yml b/vars/Fedora-33-default.yml deleted file mode 100644 index 2945494..0000000 --- a/vars/Fedora-33-default.yml +++ /dev/null @@ -1,11 +0,0 @@ ---- -# vars file for ensure_os_patch -package_list: - - name: 'dnf-automatic' - state: 'present' -service_list: - - name: 'dnf-automatic.timer' - state: 'started' - enabled: 'yes' -... - diff --git a/vars/Fedora-34-default.yml b/vars/Fedora-34-default.yml deleted file mode 100644 index 2945494..0000000 --- a/vars/Fedora-34-default.yml +++ /dev/null @@ -1,11 +0,0 @@ ---- -# vars file for ensure_os_patch -package_list: - - name: 'dnf-automatic' - state: 'present' -service_list: - - name: 'dnf-automatic.timer' - state: 'started' - enabled: 'yes' -... - diff --git a/vars/Fedora-35-default.yml b/vars/Fedora-35-default.yml deleted file mode 100644 index 2945494..0000000 --- a/vars/Fedora-35-default.yml +++ /dev/null @@ -1,11 +0,0 @@ ---- -# vars file for ensure_os_patch -package_list: - - name: 'dnf-automatic' - state: 'present' -service_list: - - name: 'dnf-automatic.timer' - state: 'started' - enabled: 'yes' -... - diff --git a/vars/Fedora-36-default.yml b/vars/Fedora-36-default.yml deleted file mode 100644 index 2945494..0000000 --- a/vars/Fedora-36-default.yml +++ /dev/null @@ -1,11 +0,0 @@ ---- -# vars file for ensure_os_patch -package_list: - - name: 'dnf-automatic' - state: 'present' -service_list: - - name: 'dnf-automatic.timer' - state: 'started' - enabled: 'yes' -... - diff --git a/vars/Fedora-37-default.yml b/vars/Fedora-37-default.yml deleted file mode 100644 index 2945494..0000000 --- a/vars/Fedora-37-default.yml +++ /dev/null @@ -1,11 +0,0 @@ ---- -# vars file for ensure_os_patch -package_list: - - name: 'dnf-automatic' - state: 'present' -service_list: - - name: 'dnf-automatic.timer' - state: 'started' - enabled: 'yes' -... - diff --git a/vars/Fedora-38-default.yml b/vars/Fedora-38-default.yml deleted file mode 100644 index 2945494..0000000 --- a/vars/Fedora-38-default.yml +++ /dev/null @@ -1,11 +0,0 @@ ---- -# vars file for ensure_os_patch -package_list: - - name: 'dnf-automatic' - state: 'present' -service_list: - - name: 'dnf-automatic.timer' - state: 'started' - enabled: 'yes' -... - diff --git a/vars/Fedora-39-default.yml b/vars/Fedora-39-default.yml deleted file mode 100644 index 2945494..0000000 --- a/vars/Fedora-39-default.yml +++ /dev/null @@ -1,11 +0,0 @@ ---- -# vars file for ensure_os_patch -package_list: - - name: 'dnf-automatic' - state: 'present' -service_list: - - name: 'dnf-automatic.timer' - state: 'started' - enabled: 'yes' -... - diff --git a/vars/Fedora-40-default.yml b/vars/Fedora-40-default.yml deleted file mode 100644 index 2945494..0000000 --- a/vars/Fedora-40-default.yml +++ /dev/null @@ -1,11 +0,0 @@ ---- -# vars file for ensure_os_patch -package_list: - - name: 'dnf-automatic' - state: 'present' -service_list: - - name: 'dnf-automatic.timer' - state: 'started' - enabled: 'yes' -... - diff --git a/vars/Fedora-41-default.yml b/vars/Fedora-41-default.yml deleted file mode 100644 index ddda6ef..0000000 --- a/vars/Fedora-41-default.yml +++ /dev/null @@ -1,10 +0,0 @@ ---- -# vars file for ensure_os_patch -package_list: - - name: 'dnf5-plugin-automatic' - state: 'present' -service_list: - - name: 'dnf5-automatic.timer' - state: 'started' - enabled: 'yes' -... From c082b8b4882b546e7abce99d6297e2358d60b1e2 Mon Sep 17 00:00:00 2001 From: Jason Rothstein Date: Mon, 4 May 2026 22:05:47 -0500 Subject: [PATCH 32/34] More ansible core 2.20 fixes Signed-off-by: Jason Rothstein --- tasks/main.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tasks/main.yml b/tasks/main.yml index 15eb575..0a96fbc 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -38,12 +38,12 @@ - name: 'package discovery' when: - ansible_facts["system"] == 'Linux' - - packages is not defined + - ansible_facts["packages"] is not defined ansible.builtin.package_facts: - name: 'service discovery' when: - ansible_facts["system"] == 'Linux' - - services is not defined + - ansible_facts["services"] is not defined ansible.builtin.service_facts: - name: 'ensure packages' when: From cdcdbb2ed936551a4b7fd2b27ef43f9be98a400f Mon Sep 17 00:00:00 2001 From: Jason Rothstein Date: Tue, 5 May 2026 14:28:22 -0500 Subject: [PATCH 33/34] Remove deplicate code Signed-off-by: Jason Rothstein --- tasks/Debian-default.yml | 17 ----------------- tasks/default.yml | 3 --- tasks/main.yml | 16 ---------------- 3 files changed, 36 deletions(-) delete mode 100644 tasks/Debian-default.yml delete mode 100644 tasks/default.yml diff --git a/tasks/Debian-default.yml b/tasks/Debian-default.yml deleted file mode 100644 index 8d20d2f..0000000 --- a/tasks/Debian-default.yml +++ /dev/null @@ -1,17 +0,0 @@ ---- -# tasks file for ensure_os_patch -- name: 'ensure Debian patch' - when: - - ansible_facts["system"] == 'Linux' - - ansible_facts["pkg_mgr"]== 'apt' - ansible.builtin.apt: - autoclean: 'yes' - autoremove: 'yes' - upgrade: 'dist' - notify: - - 'ensure_os_patch.package_facts' - - 'ensure_os_patch.service_facts' -- name: 'flush handlers' - meta: 'flush_handlers' -... - diff --git a/tasks/default.yml b/tasks/default.yml deleted file mode 100644 index 546bf13..0000000 --- a/tasks/default.yml +++ /dev/null @@ -1,3 +0,0 @@ ---- -# tasks file for ensure_os_patch - diff --git a/tasks/main.yml b/tasks/main.yml index 0a96fbc..d0456f3 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -1,21 +1,5 @@ --- # tasks file for ensure_os_patch -- name: 'include vendor / version specific tasks' - when: - - ansible_facts["system"] == 'Linux' - include_tasks: - file: '{{ lookup("first_found", findme ) }}' - vars: - findme: - files: - - '{{ ansible_facts["distribution"] }}-{{ ansible_facts["distribution_major_version"] }}-{{ ansible_facts["architecture"] }}.yml' - - '{{ ansible_facts["distribution"] }}-{{ ansible_facts["distribution_major_version"] }}-default.yml' - - '{{ ansible_facts["distribution"] }}-default.yml' - - '{{ ansible_facts["os_family"] }}-{{ ansible_facts["distribution_major_version"] }}-{{ ansible_facts["architecture"] }}.yml' - - '{{ ansible_facts["os_family"] }}-{{ ansible_facts["distribution_major_version"] }}-default.yml' - - '{{ ansible_facts["os_family"] }}-default.yml' - - 'default.yml' - errors: 'ignore' - name: 'include variables' when: - ansible_facts["system"] == 'Linux' From d0314b6c526ef93f56212f08dc00c1bcf96c2682 Mon Sep 17 00:00:00 2001 From: Jason Rothstein Date: Tue, 5 May 2026 18:13:53 -0500 Subject: [PATCH 34/34] More ansible core 2.20 fixes Signed-off-by: Jason Rothstein --- handlers/main.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/handlers/main.yml b/handlers/main.yml index 6017a18..797fda6 100644 --- a/handlers/main.yml +++ b/handlers/main.yml @@ -6,14 +6,14 @@ ansible.builtin.service_facts: - name: 'ensure_os_patch.service_reload' when: - - ansible_system == 'Linux' - - ansible_service_mgr == 'systemd' + - ansible_facts["system"] == 'Linux' + - ansible_facts["service_mgr"] == 'systemd' - ensure_os_patch is defined ansible.builtin.systemd: daemon_reload: 'yes' - name: 'ensure_os_patch.service_restart' when: - - ansible_system == 'Linux' + - ansible_facts["system"] == 'Linux' - ensure_os_patch is defined - ensure_os_patch.service_list is defined - ensure_os_patch.service_list is iterable