--- # Playbook: shell.yml # Purpose: Configure shell environment (zsh, oh-my-zsh, plugins) # Targets: all hosts # Tags: shell # Usage: make shell-all - name: Configure shell environment hosts: all become: true strategy: free ignore_errors: true ignore_unreachable: true roles: - {role: shell, tags: ['shell']} pre_tasks: - name: Check if NodeSource repository exists ansible.builtin.stat: path: /etc/apt/sources.list.d/nodesource.list register: nodesource_repo_file failed_when: false - name: Check if NodeSource GPG key exists ansible.builtin.stat: path: /etc/apt/keyrings/nodesource.gpg register: nodesource_key_file failed_when: false - name: Remove incorrectly configured NodeSource repository ansible.builtin.file: path: /etc/apt/sources.list.d/nodesource.list state: absent become: true when: - nodesource_repo_file.stat.exists - not (nodesource_key_file.stat.exists and nodesource_key_file.stat.size > 0) - name: Update apt cache ansible.builtin.apt: update_cache: true ignore_errors: true register: apt_update_result - name: Display apt update status ansible.builtin.debug: msg: "Apt cache update: {{ 'Success' if apt_update_result is succeeded else 'Failed - continuing anyway' }}" when: ansible_debug_output | default(false) | bool tasks: - name: Display completion message ansible.builtin.debug: msg: "Shell configuration completed successfully on {{ inventory_hostname }}!"