--- - name: Check if desktop applications are installed apt: list: "{{ item }}" register: app_check loop: - redshift - libreoffice - evince changed_when: false - name: Install desktop applications apt: name: - redshift - libreoffice - evince state: present when: - app_check.results[0].installed is not defined or - app_check.results[1].installed is not defined or - app_check.results[2].installed is not defined - name: Check if Brave is already installed command: brave-browser --version register: brave_check ignore_errors: true changed_when: false - name: Check if Brave package is installed via apt apt: list: brave-browser register: brave_apt_check changed_when: false - name: Remove old Brave repository files file: path: "{{ item }}" state: absent loop: - /etc/apt/sources.list.d/brave-browser.list - /etc/apt/sources.list.d/brave-browser-release.sources when: brave_check.rc != 0 or brave_apt_check.results[0].installed is not defined - name: Download Brave APT key 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' when: brave_check.rc != 0 or brave_apt_check.results[0].installed is not defined - name: Add Brave repo (all Debian family) 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 when: brave_check.rc != 0 or brave_apt_check.results[0].installed is not defined - name: Update apt cache after Brave repo add apt: update_cache: yes when: brave_check.rc != 0 or brave_apt_check.results[0].installed is not defined - name: Install Brave browser apt: name: brave-browser state: present when: brave_check.rc != 0 or brave_apt_check.results[0].installed is not defined - name: Display application status debug: msg: - "Redshift installed: {{ 'Yes' if app_check.results[0].installed is defined else 'No' }}" - "LibreOffice installed: {{ 'Yes' if app_check.results[1].installed is defined else 'No' }}" - "Evince installed: {{ 'Yes' if app_check.results[2].installed is defined else 'No' }}" - "Brave already installed: {{ brave_check.stdout if brave_check.rc == 0 else 'Not found' }}" - "Brave package installed: {{ 'Yes' if brave_apt_check.results[0].installed is defined else 'No' }}" - "Actions taken: {{ 'None - All apps already present' if app_check.results[0].installed is defined and app_check.results[1].installed is defined and app_check.results[2].installed is defined and brave_check.rc == 0 and brave_apt_check.results[0].installed is defined else 'Some applications installed/updated' }}"