Use standardized / generic method to install packages for EPEL

This commit is contained in:
Jason Rothstein 2020-12-06 19:57:08 -06:00
parent 59f3b848e2
commit fd4875440f
5 changed files with 53 additions and 69 deletions

View File

@ -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'

View File

@ -0,0 +1,7 @@
---
# vars file for ensure_repo_epel
package_list:
- name: 'epel-release'
state: 'present'
url: 'epel-release'

View File

@ -0,0 +1,7 @@
---
# vars file for ensure_repo_epel
package_list:
- name: 'epel-release'
state: 'present'
url: 'epel-release'

View File

@ -0,0 +1,8 @@
---
# vars file for ensure_repo_epel
package_list:
- name: 'epel-release'
disable_gpg_check: 'yes'
state: 'present'
url: 'epel-release'

2
vars/default.yml Normal file
View File

@ -0,0 +1,2 @@
---
# vars file for ensure_repo_epel