--- - name: Enable COPR repositories community.general.copr: name: "{{ item.repo | default(item) }}" state: enabled loop: "{{ (dnf_add_copr | default([])) + (dnf_add_copr_group | default([])) }}" become: true - name: Add DNF repositories ansible.builtin.yum_repository: name: "{{ item.name }}" description: "{{ item.description }}" baseurl: "{{ item.baseurl }}" enabled: true gpgcheck: true gpgkey: "{{ item.gpgkey }}" loop: "{{ (dnf_add_repos | default([])) + (dnf_add_repos_group | default([])) }}" become: true - name: Remove unwanted packages ansible.builtin.dnf: name: "{{ (dnf_remove | default([])) + (dnf_remove_group | default([])) }}" state: absent become: true when: ((dnf_remove | default([])) + (dnf_remove_group | default([]))) | length > 0 failed_when: false - name: Install DNF packages ansible.builtin.dnf: name: "{{ (dnf_install | default([])) + (dnf_install_group | default([])) }}" state: present become: true when: ((dnf_install | default([])) + (dnf_install_group | default([]))) | length > 0 - name: Install cargo packages ansible.builtin.command: cmd: "cargo install {{ item }}" loop: "{{ (cargo_packages | default([])) + (cargo_packages_group | default([])) }}" when: ((cargo_packages | default([])) + (cargo_packages_group | default([]))) | length > 0 register: software_cargo_install_result changed_when: "'Installing' in software_cargo_install_result.stderr or 'Compiling' in software_cargo_install_result.stderr" failed_when: software_cargo_install_result.rc != 0 and 'already exists' not in software_cargo_install_result.stderr - name: Clone git repositories ansible.builtin.git: repo: "{{ item.repo }}" dest: "{{ item.dest }}" version: "{{ item.version }}" update: true loop: "{{ (git_add_repos | default([])) + (git_add_repos_group | default([])) }}"