From fd4875440f90900e80e23c09dd7c8ada082c4002 Mon Sep 17 00:00:00 2001 From: Jason Rothstein Date: Sun, 6 Dec 2020 19:57:08 -0600 Subject: [PATCH] Use standardized / generic method to install packages for EPEL --- tasks/main.yml | 98 ++++++++++++--------------------------- vars/CentOS-6-default.yml | 7 +++ vars/CentOS-7-default.yml | 7 +++ vars/CentOS-8-default.yml | 8 ++++ vars/default.yml | 2 + 5 files changed, 53 insertions(+), 69 deletions(-) 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/default.yml diff --git a/tasks/main.yml b/tasks/main.yml index 976a2a8..3c42911 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -1,5 +1,24 @@ --- # tasks file for ensure_repo_epel +- name: 'include variables' + when: + - ansible_system == 'Linux' + include_vars: + file: '{{ lookup("first_found", findme ) }}' + name: 'ensure_repo_epel' + 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' @@ -8,76 +27,17 @@ - name: 'ensure packages' when: - ansible_system == 'Linux' - - ansible_distribution == 'CentOS' - - packages['epel-release'] is not defined + - ensure_repo_epel is defined + - ensure_repo_epel.requirements_package_list is defined + - ensure_repo_epel.requirements_package_list is iterable + - packages[item.name] is not defined ansible.builtin.package: - name: 'epel-release' - state: 'installed' - notify: - - 'ensure_repo_epel.package_facts' - - 'ensure_repo_epel.service_facts' -- name: 'ensure packages' - when: - - ansible_system == 'Linux' - - ansible_distribution == 'Oracle' - - ansible_distribution_major_version|int == 6 - - packages['epel-release'] is not defined - ansible.builtin.package: - disable_gpg_check: 'yes' - name: 'https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm' - state: 'installed' - notify: - - 'ensure_repo_epel.package_facts' - - 'ensure_repo_epel.service_facts' -- name: 'ensure packages' - when: - - ansible_system == 'Linux' - - ansible_distribution == 'Oracle' - - ansible_distribution_major_version|int == 7 - - packages['epel-release'] is not defined - ansible.builtin.package: - disable_gpg_check: 'yes' - name: 'https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm' - state: 'installed' - notify: - - 'ensure_repo_epel.package_facts' - - 'ensure_repo_epel.service_facts' -- name: 'ensure packages' - when: - - ansible_system == 'Linux' - - ansible_distribution == 'Oracle' - - ansible_distribution_major_version|int == 8 - - packages['epel-release'] is not defined - ansible.builtin.package: - disable_gpg_check: 'yes' - name: 'https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm' - state: 'installed' - notify: - - 'ensure_repo_epel.package_facts' - - 'ensure_repo_epel.service_facts' -- name: 'ensure packages' - when: - - ansible_system == 'Linux' - - ansible_distribution == 'Oracle' - - ansible_distribution_major_version|int == 7 - - packages['oracle-epel-release-el7'] is not defined - ansible.builtin.package: - name: 'oracle-epel-release-el7' - state: 'installed' - notify: - - 'ensure_repo_epel.package_facts' - - 'ensure_repo_epel.service_facts' -- name: 'flush handlers' - meta: 'flush_handlers' -- name: 'ensure packages' - when: - - ansible_system == 'Linux' - - ansible_distribution == 'Oracle' - - ansible_distribution_major_version|int == 8 - - packages['oracle-epel-release-el8'] is not defined - ansible.builtin.package: - name: 'oracle-epel-release-el8' - state: 'installed' + disable_gpg_check: '{{ item.disable_gpg_check | omit(default) }}' + name: '{{ item.url }}' + state: '{{ item.state }}' + loop: '{{ ensure_repo_epel.requirements_package_list }}' + loop_control: + label: '{{ item.name }} will be {{ item.state }}' notify: - 'ensure_repo_epel.package_facts' - 'ensure_repo_epel.service_facts' diff --git a/vars/CentOS-6-default.yml b/vars/CentOS-6-default.yml new file mode 100644 index 0000000..7160069 --- /dev/null +++ b/vars/CentOS-6-default.yml @@ -0,0 +1,7 @@ +--- +# vars file for ensure_repo_epel +package_list: + - name: 'epel-release' + state: 'present' + url: 'epel-release' + diff --git a/vars/CentOS-7-default.yml b/vars/CentOS-7-default.yml new file mode 100644 index 0000000..7160069 --- /dev/null +++ b/vars/CentOS-7-default.yml @@ -0,0 +1,7 @@ +--- +# vars file for ensure_repo_epel +package_list: + - name: 'epel-release' + state: 'present' + url: 'epel-release' + diff --git a/vars/CentOS-8-default.yml b/vars/CentOS-8-default.yml new file mode 100644 index 0000000..5813ee8 --- /dev/null +++ b/vars/CentOS-8-default.yml @@ -0,0 +1,8 @@ +--- +# vars file for ensure_repo_epel +package_list: + - name: 'epel-release' + disable_gpg_check: 'yes' + state: 'present' + url: 'epel-release' + diff --git a/vars/default.yml b/vars/default.yml new file mode 100644 index 0000000..ebefd89 --- /dev/null +++ b/vars/default.yml @@ -0,0 +1,2 @@ +--- +# vars file for ensure_repo_epel \ No newline at end of file