25 lines
711 B
YAML
25 lines
711 B
YAML
- name: List installed pipx packages
|
|
ansible.builtin.shell: set -o pipefail && pipx list --short | awk '{print $1}'
|
|
register: installed_pipx_packages
|
|
changed_when: false
|
|
|
|
- name: Define desired pipx packages
|
|
ansible.builtin.set_fact:
|
|
desired_pipx_packages:
|
|
- ansible
|
|
- ansible-lint
|
|
- shyaml
|
|
|
|
- name: Install pipx packages
|
|
community.general.pipx:
|
|
name: "{{ item }}"
|
|
state: present
|
|
loop: "{{ desired_pipx_packages }}"
|
|
when: item not in installed_pipx_packages.stdout_lines
|
|
|
|
- name: Remove undesired pipx packages
|
|
community.general.pipx:
|
|
name: "{{ item }}"
|
|
state: absent
|
|
loop: "{{ installed_pipx_packages.stdout_lines | difference(desired_pipx_packages) }}"
|