--- - name: Enable COPR repositories community.general.copr: name: "{{ item.repo | default(item) }}" state: enabled loop: "{{ (dnf_add_copr | default([])) + (dnf_add_copr_group | default([])) + (dnf_add_copr_app | default([])) }}" become: true - name: Add DNF repositories ansible.builtin.yum_repository: name: "{{ item.name }}" description: "{{ item.description | default(omit) }}" baseurl: "{{ item.baseurl }}" enabled: true gpgcheck: "{{ item.gpgcheck | default(true) }}" gpgkey: "{{ item.gpgkey | default(omit) }}" loop: "{{ (dnf_add_repos | default([])) + (dnf_add_repos_group | default([])) + (dnf_add_repos_app | default([])) }}" become: true - name: Add DNF repository files ansible.builtin.get_url: url: "{{ item.url }}" dest: "/etc/yum.repos.d/{{ item.url | basename }}" owner: root group: root mode: '0644' loop: "{{ (dnf_add_repofiles | default([])) + (dnf_add_repofiles_group | default([])) + (dnf_add_repofiles_app | default([])) }}" become: true - name: Remove DNF repositories ansible.builtin.yum_repository: name: "{{ item }}" state: absent loop: "{{ (dnf_remove_repos | default([])) + (dnf_remove_repos_group | default([])) }}" become: true - name: Remove unwanted packages ansible.builtin.dnf: name: "{{ item }}" state: absent autoremove: true loop: "{{ (dnf_remove | default([])) + (dnf_remove_group | default([])) }}" become: true failed_when: false - name: Install DNF packages ansible.builtin.dnf: name: "{{ (apps | default([])) + (apps_group | default([])) + (apps_app | default([])) }}" state: present skip_broken: true become: true - name: Update all DNF packages ansible.builtin.dnf: name: "*" state: latest # noqa package-latest skip_broken: true become: true - name: Install cargo packages ansible.builtin.command: cmd: "cargo install {{ item }}" loop: "{{ (cargo_packages | default([])) + (cargo_packages_group | default([])) + (cargo_packages_app | default([])) }}" when: ((cargo_packages | default([])) + (cargo_packages_group | default([])) + (cargo_packages_app | default([]))) | length > 0 register: apps_cargo_install_result changed_when: "'Installing' in apps_cargo_install_result.stderr or 'Compiling' in apps_cargo_install_result.stderr" failed_when: apps_cargo_install_result.rc != 0 and 'already exists' not in apps_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([])) }}" - name: Enable and start system services ansible.builtin.systemd: name: "{{ item }}" enabled: true state: started scope: system loop: "{{ (services_system_enabled | default([])) + (services_system_enabled_group | default([])) + (services_system_enabled_app | default([])) }}" become: true - name: Disable and stop system services ansible.builtin.systemd: name: "{{ item }}" enabled: false state: stopped scope: system loop: "{{ (services_system_disabled | default([])) + (services_system_disabled_group | default([])) + (services_system_disabled_app | default([])) }}" become: true - name: Enable and start user services ansible.builtin.systemd: name: "{{ item }}" enabled: true state: started scope: user loop: "{{ (services_user_enabled | default([])) + (services_user_enabled_group | default([])) + (services_user_enabled_app | default([])) }}" - name: Disable and stop user services ansible.builtin.systemd: name: "{{ item }}" enabled: false state: stopped scope: system loop: "{{ (services_user_disabled | default([])) + (services_user_disabled_group | default([])) + (services_user_disabled_app | default([])) }}"