--- - 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_repositories }}" become: true when: dnf_add_repositories is defined and dnf_add_repositories | length > 0 - name: Remove unwanted packages ansible.builtin.dnf: name: "{{ dnf_remove }}" state: absent become: true when: dnf_remove is defined and dnf_remove | length > 0 failed_when: false - name: Install DNF packages ansible.builtin.dnf: name: "{{ dnf_install }}" state: present become: true when: dnf_install is defined and dnf_install | length > 0 - name: Install cargo packages ansible.builtin.command: cmd: "cargo install {{ item }}" loop: "{{ cargo_packages }}" when: cargo_packages is defined and cargo_packages | 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_repos }}" when: git_repos is defined and git_repos | length > 0