# 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 } ) }}"