Files
ansible_role_package/tasks/pkgs/ansible.yml

64 lines
1.9 KiB
YAML

# vim: set filetype=yaml.ansible :
#
## Package: ansible
## Description: simple infrastructure as code tool
## Version: latest
## Methods: [system, source]
## Helpers: pipx
---
- name: Set ansible default facts # {{{
ansible.builtin.set_fact:
ansible:
methods:
- system
- source
pkgname:
RedHat: ansible
Debian: ansible
Alpine: ansible
Archlinux: ansible
pip: ansible
# }}}
- name: Configure ansible
when:
- "'ansible' not in __configured"
block:
- name: Set ansible install method
when:
- ansible_imethod is undefined
ansible.builtin.set_fact:
ansible_imethod: "{{ imethod if imethod in ansible.methods else ansible.methods[0] }}"
- name: Append ansible to system package manager install list
when:
- ansible_imethod == "system"
block:
- name: Queue ansible sytem install
ansible.builtin.set_fact:
pkg_sys: "{{ pkg_sys + [ ansible.pkgname[os_family] ] }}"
- name: Finalise ansible system install
ansible.builtin.set_fact:
ansible_install: "{{ ansible_imethod }}={{ ansible.pkgname[os_family] }}"
- name: Append ansible to pipx install list
when:
- ansible_imethod == 'source'
ansible.builtin.set_fact:
- name: Configure ansible source install
ansible.builtin.set_fact:
ansible_src_install:
name: "{{ ansible.pkgname['pip'] }}"
- name: Queue ansible source install
ansible.builtin.set_fact:
pkg_pipx: "{{ pkg_pipx + [ansible_src_install] }}"
- name: Finalise ansible source install
ansible.builtin.set_fact:
ansible_install: "{{ ansible_imethod }}={{ ansible_src_install }}"
- name: Complete ansible configuration
ansible.builtin.set_fact:
__configured: "{{ __configured | combine( { 'ansible': ansible_install } ) }}"