--- - name: Enable COPR repositories community.general.copr: name: "{{ item.repo | default(item) }}" state: enabled loop: "{{ (copr_install | default([])) + (apps_copr | default([])) }}" become: true - name: Add DNF repositories ansible.builtin.yum_repository: name: "{{ item.name }}" description: "{{ item.description | default(omit) }}" baseurl: "{{ item.baseurl | default(omit) }}" metalink: "{{ item.metalink | default(omit) }}" enabled: "{{ item.enabled | default(true) }}" metadata_expire: "{{ item.metadata_expire | default(omit) }}" gpgcheck: "{{ item.gpgcheck | default(true) }}" repo_gpgcheck: "{{ item.repo_gpgcheck | default(omit) }}" gpgkey: "{{ item.gpgkey | default(omit) }}" loop: "{{ (dnf_repos_add | default([])) + (apps_dnf_repos_add | default([])) }}" become: true - name: Add DNF repository files ansible.builtin.get_url: url: "{{ item.url | default(item) }}" dest: "/etc/yum.repos.d/{{ (item.url | default(item)) | basename }}" owner: root group: root mode: '0644' loop: "{{ (dnf_repofiles_add | default([])) + (apps_dnf_repofiles_add | default([])) }}" become: true - name: Remove DNF repositories ansible.builtin.yum_repository: name: "{{ item }}" state: absent loop: "{{ dnf_repos_remove | default([]) }}" become: true - name: Install remote RPM packages (from URLs) ansible.builtin.dnf: name: "{{ (dnf_install_remote | default([])) + (apps_dnf_install_remote | default([])) + (apps_packages_remote | default([])) }}" state: present disable_gpg_check: true become: true when: ((dnf_install_remote | default([])) + (apps_dnf_install_remote | default([])) + (apps_packages_remote | default([]))) | length > 0 - name: Remove unwanted packages ansible.builtin.dnf: name: "{{ item }}" state: absent autoremove: true loop: "{{ dnf_remove | default([]) }}" failed_when: false become: true - name: Install packages ansible.builtin.dnf: name: "{{ apps_all_packages }}" state: present skip_broken: true become: true - name: Update all packages ansible.builtin.dnf: name: "*" state: latest # noqa package-latest skip_broken: true become: true