--- - name: Check if applications are already installed ansible.builtin.package_facts: manager: apt - name: Check if Brave browser is installed ansible.builtin.command: brave-browser --version register: applications_brave_check ignore_errors: true changed_when: false failed_when: false no_log: true - name: Set installation conditions ansible.builtin.set_fact: applications_desktop_apps_needed: "{{ ['redshift', 'libreoffice', 'evince'] | difference(ansible_facts.packages.keys()) | length > 0 }}" applications_brave_needs_install: "{{ applications_brave_check.rc != 0 or 'brave-browser' not in ansible_facts.packages }}" - name: Clean up duplicate Brave repository files ansible.builtin.file: path: "{{ item }}" state: absent loop: - /etc/apt/sources.list.d/brave-browser.list - /etc/apt/sources.list.d/brave-browser-release.sources become: true failed_when: false - name: Install desktop applications ansible.builtin.apt: name: - redshift - libreoffice - evince state: present when: applications_desktop_apps_needed - name: Brave browser installation when: applications_brave_needs_install block: - name: Download Brave APT key ansible.builtin.get_url: url: https://brave-browser-apt-release.s3.brave.com/brave-browser-archive-keyring.gpg dest: /usr/share/keyrings/brave-browser-archive-keyring.gpg mode: '0644' - name: Add Brave repository ansible.builtin.apt_repository: repo: "deb [signed-by=/usr/share/keyrings/brave-browser-archive-keyring.gpg] https://brave-browser-apt-release.s3.brave.com/ stable main" filename: brave-browser state: present - name: Install Brave browser ansible.builtin.apt: name: brave-browser state: present - name: Display application status ansible.builtin.debug: msg: - "Desktop apps needed: {{ applications_desktop_apps_needed }}" - "Brave needed: {{ applications_brave_needs_install }}" - "Redshift: {{ 'Installed' if 'redshift' in ansible_facts.packages else 'Missing' }}" - "LibreOffice: {{ 'Installed' if 'libreoffice' in ansible_facts.packages else 'Missing' }}" - "Evince: {{ 'Installed' if 'evince' in ansible_facts.packages else 'Missing' }}" - "Brave: {{ applications_brave_check.stdout if applications_brave_check.rc == 0 else 'Not installed' }}" when: ansible_debug_output | default(false) | bool