From 160ab649170ca1192eec1e794b27657f7a45a0b7 Mon Sep 17 00:00:00 2001 From: Jason Rothstein Date: Sat, 5 Dec 2020 23:23:46 -0600 Subject: [PATCH] Use common package install via variables rather than hard code the task --- tasks/CentOS-6-default.yml | 38 ---------------------------------- tasks/Debian-default.yml | 17 ++------------- tasks/Oracle-6-default.yml | 38 ---------------------------------- tasks/main.yml | 42 ++++++++++++++++++++++++++++++++++++++ vars/CentOS-6-default.yml | 22 ++++++++++++++++++++ vars/CentOS-7-default.yml | 8 ++++++++ vars/CentOS-8-default.yml | 8 ++++++++ vars/Debian-default.yml | 8 ++++++++ vars/Fedora-30-default.yml | 8 ++++++++ vars/Fedora-31-default.yml | 8 ++++++++ vars/Fedora-32-default.yml | 8 ++++++++ vars/Fedora-33-default.yml | 8 ++++++++ vars/default.yml | 2 ++ 13 files changed, 124 insertions(+), 91 deletions(-) delete mode 100644 tasks/CentOS-6-default.yml delete mode 100644 tasks/Oracle-6-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/Debian-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/default.yml diff --git a/tasks/CentOS-6-default.yml b/tasks/CentOS-6-default.yml deleted file mode 100644 index 50e5c52..0000000 --- a/tasks/CentOS-6-default.yml +++ /dev/null @@ -1,38 +0,0 @@ ---- -# tasks file for ensure_ansible_prereq -- name: 'package states' - ansible.builtin.package: - name: '{{ item.name }}' - state: '{{ item.state }}' - loop: - - name: 'acpid' - state: 'present' - - name: 'libselinux-python' - state: 'present' - - name: 'pyOpenSSL' - state: 'present' - - name: 'python-pyasn1' - state: 'present' - - name: 'python-urllib3' - state: 'present' - - name: 'python2-ndg_httpsclient' - state: 'present' - loop_control: - label: '{{ item.name }} will be {{ item.state }}' - notify: - - 'ensure_ansible_prereq.package_facts' - - 'ensure_ansible_prereq.service_facts' -- name: 'service states' - ansible.builtin.service: - enabled: '{{ item.enabled }}' - name: '{{ item.name }}' - state: '{{ item.state }}' - loop: - - enabled: 'yes' - name: 'acpid' - state: 'started' - loop_control: - label: '{{ item.name }} will be {{ item.state }}' - notify: - - 'ensure_ansible_prereq.package_facts' - - 'ensure_ansible_prereq.service_facts' diff --git a/tasks/Debian-default.yml b/tasks/Debian-default.yml index 5d8cd3f..9f60a36 100644 --- a/tasks/Debian-default.yml +++ b/tasks/Debian-default.yml @@ -3,18 +3,5 @@ - name: 'repository changes' ansible.builtin.apt_repository: repo: 'deb cdrom:*' - state: absent -- name: 'package states' - ansible.builtin.package: - name: '{{ item.name }}' - state: '{{ item.state }}' - loop: - - name: 'python-apt' - state: 'present' - - name: 'sudo' - state: 'present' - loop_control: - label: '{{ item.name }} will be {{ item.state }}' - notify: - - 'ensure_ansible_prereq.package_facts' - - 'ensure_ansible_prereq.service_facts' + state: 'absent' + diff --git a/tasks/Oracle-6-default.yml b/tasks/Oracle-6-default.yml deleted file mode 100644 index 50e5c52..0000000 --- a/tasks/Oracle-6-default.yml +++ /dev/null @@ -1,38 +0,0 @@ ---- -# tasks file for ensure_ansible_prereq -- name: 'package states' - ansible.builtin.package: - name: '{{ item.name }}' - state: '{{ item.state }}' - loop: - - name: 'acpid' - state: 'present' - - name: 'libselinux-python' - state: 'present' - - name: 'pyOpenSSL' - state: 'present' - - name: 'python-pyasn1' - state: 'present' - - name: 'python-urllib3' - state: 'present' - - name: 'python2-ndg_httpsclient' - state: 'present' - loop_control: - label: '{{ item.name }} will be {{ item.state }}' - notify: - - 'ensure_ansible_prereq.package_facts' - - 'ensure_ansible_prereq.service_facts' -- name: 'service states' - ansible.builtin.service: - enabled: '{{ item.enabled }}' - name: '{{ item.name }}' - state: '{{ item.state }}' - loop: - - enabled: 'yes' - name: 'acpid' - state: 'started' - loop_control: - label: '{{ item.name }} will be {{ item.state }}' - notify: - - 'ensure_ansible_prereq.package_facts' - - 'ensure_ansible_prereq.service_facts' diff --git a/tasks/main.yml b/tasks/main.yml index 882d194..bda42a8 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -18,3 +18,45 @@ errors: 'ignore' - name: 'flush handlers' meta: 'flush_handlers' +- name: 'include vendor / version specific variables' + when: + - ansible_system == 'Linux' + include_vars: + file: '{{ lookup("first_found", findme ) }}' + name: 'ensure_ansible_prereq' + vars: + findme: + files: + - '{{ ansible_distribution }}-{{ ansible_distribution_major_version }}-{{ ansible_architecture }}.yml' + - '{{ ansible_distribution }}-{{ ansible_distribution_major_version }}-default.yml' + - '{{ ansible_distribution }}-default.yml' + - '{{ ansible_os_family }}-{{ ansible_distribution_major_version }}-{{ ansible_architecture }}.yml' + - '{{ ansible_os_family }}-{{ ansible_distribution_major_version }}-default.yml' + - '{{ ansible_os_family }}-default.yml' + - 'default.yml' + paths: + - '../vars/' + errors: 'ignore' +- name: 'package discovery' + when: + - ansible_system == 'Linux' + - packages is not defined + ansible.builtin.package_facts: +- name: 'ensure packages' + when: + - ansible_system == 'Linux' + - ensure_ansible_prereq is defined + - ensure_ansible_prereq.package_list is defined + - ensure_ansible_prereq.package_list is iterable + ansible.builtin.package: + name: '{{ item.name }}' + state: '{{ item.state }}' + loop: '{{ ensure_ansible_prereq.package_list }}' + loop_control: + label: '{{ item.name }} will be {{ item.state }}' + notify: + - 'ensure_ansible_prereq.package_facts' + - 'ensure_ansible_prereq.service_facts' +- name: 'flush handlers' + meta: 'flush_handlers' + diff --git a/vars/CentOS-6-default.yml b/vars/CentOS-6-default.yml new file mode 100644 index 0000000..860b0f7 --- /dev/null +++ b/vars/CentOS-6-default.yml @@ -0,0 +1,22 @@ +--- +# vars file for ensure_ansible_prereq +package_list: + - name: 'acpid' + state: 'present' + - name: 'libselinux-python' + state: 'present' + - name: 'libsemanage-python' + state: 'present' + - name: 'pyOpenSSL' + state: 'present' + - name: 'python-pyasn1' + state: 'present' + - name: 'python-urllib3' + state: 'present' + - name: 'python2-ndg_httpsclient' + state: 'present' +service_list: + - name: 'acpid' + state: 'started' + enabled: 'yes' + diff --git a/vars/CentOS-7-default.yml b/vars/CentOS-7-default.yml new file mode 100644 index 0000000..2ac0109 --- /dev/null +++ b/vars/CentOS-7-default.yml @@ -0,0 +1,8 @@ +--- +# vars file for ensure_ansible_prereq +package_list: + - name: 'libselinux-python' + state: 'present' + - name: 'libsemanage-python' + state: 'present' + diff --git a/vars/CentOS-8-default.yml b/vars/CentOS-8-default.yml new file mode 100644 index 0000000..b83fe81 --- /dev/null +++ b/vars/CentOS-8-default.yml @@ -0,0 +1,8 @@ +--- +# vars file for ensure_ansible_prereq +package_list: + - name: 'python3-libselinux' + state: 'present' + - name: 'python3-libsemanage' + state: 'present' + diff --git a/vars/Debian-default.yml b/vars/Debian-default.yml new file mode 100644 index 0000000..bb2267e --- /dev/null +++ b/vars/Debian-default.yml @@ -0,0 +1,8 @@ +--- +# vars file for ensure_ansible_prereq +package_list: + - name: 'python-apt' + state: 'present' + - name: 'sudo' + state: 'present' + diff --git a/vars/Fedora-30-default.yml b/vars/Fedora-30-default.yml new file mode 100644 index 0000000..2ac0109 --- /dev/null +++ b/vars/Fedora-30-default.yml @@ -0,0 +1,8 @@ +--- +# vars file for ensure_ansible_prereq +package_list: + - name: 'libselinux-python' + state: 'present' + - name: 'libsemanage-python' + state: 'present' + diff --git a/vars/Fedora-31-default.yml b/vars/Fedora-31-default.yml new file mode 100644 index 0000000..b83fe81 --- /dev/null +++ b/vars/Fedora-31-default.yml @@ -0,0 +1,8 @@ +--- +# vars file for ensure_ansible_prereq +package_list: + - name: 'python3-libselinux' + state: 'present' + - name: 'python3-libsemanage' + state: 'present' + diff --git a/vars/Fedora-32-default.yml b/vars/Fedora-32-default.yml new file mode 100644 index 0000000..b83fe81 --- /dev/null +++ b/vars/Fedora-32-default.yml @@ -0,0 +1,8 @@ +--- +# vars file for ensure_ansible_prereq +package_list: + - name: 'python3-libselinux' + state: 'present' + - name: 'python3-libsemanage' + state: 'present' + diff --git a/vars/Fedora-33-default.yml b/vars/Fedora-33-default.yml new file mode 100644 index 0000000..b83fe81 --- /dev/null +++ b/vars/Fedora-33-default.yml @@ -0,0 +1,8 @@ +--- +# vars file for ensure_ansible_prereq +package_list: + - name: 'python3-libselinux' + state: 'present' + - name: 'python3-libsemanage' + state: 'present' + diff --git a/vars/default.yml b/vars/default.yml new file mode 100644 index 0000000..ce82ad2 --- /dev/null +++ b/vars/default.yml @@ -0,0 +1,2 @@ +--- +# vars file for ensure_ansible_prereq \ No newline at end of file