64 lines
1.9 KiB
YAML
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'
|
|
block:
|
|
- 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 } ) }}"
|