f1dd4fb3c05cd769bbe84abe91ab9373f6a42eea
Replace deprecated ansible_user_dir/ansible_user_id with ansible_facts['user_dir'/'user_id'] across all roles. Switch git repo URLs from HTTPS to SSH. Split site.yml into two plays so user-facing roles (dotfiles, scripts, hotkeys) run without become.
Cachy-workstation
Infrastructure-as-Code for a CachyOS Linux workstation, managed with Ansible.
Goals
- Describe and reproduce the workstation configuration declaratively
- Learn Ansible patterns: site-based playbooks, roles, and tags
Design
- Tool: Ansible
- Target:
localhostonly - Entry point:
site.yml - Structure: Roles with tags for selective execution
Prerequisites
- Ansible installed on the workstation
- A working Python environment (required by Ansible)
Install prerequisites manually before running the playbook:
sudo pacman -S ansible ansible-lint
Usage
Run the full site playbook:
ansible-playbook site.yml
Run only tasks matching a specific tag:
ansible-playbook site.yml --tags <tagname>
Skip tasks matching a tag:
ansible-playbook site.yml --skip-tags <tagname>
Structure
.
├── site.yml # Main entry point
├── inventory/ # Inventory files
├── roles/ # Ansible roles
└── group_vars/ # Variables by group
Structure will grow as roles are added.
Description
Languages
Jinja
100%