updated readme

This commit is contained in:
2026-06-22 12:30:49 -05:00
parent a0f41b10de
commit b72685b384
+43 -12
View File
@@ -14,15 +14,31 @@ Infrastructure-as-Code for a CachyOS Linux workstation, managed with Ansible.
- **Entry point:** `site.yml` - **Entry point:** `site.yml`
- **Structure:** Roles with tags for selective execution - **Structure:** Roles with tags for selective execution
## Prerequisites ## New Machine Bootstrap
- Ansible installed on the workstation On a fresh machine, run `bootstrap.yml` first. It handles the prerequisites that
- A working Python environment (required by Ansible) `site.yml` depends on:
Install prerequisites manually before running the playbook: 1. Installs and authenticates Tailscale
2. Imports GPG keys from the local git server
3. Clones the pass password store
Prerequisites before running bootstrap:
```bash ```bash
sudo pacman -S ansible ansible-lint sudo pacman -S ansible git
```
Run bootstrap:
```bash
ansible-playbook -K -i inventory/hosts.yml bootstrap.yml
```
Then run the full site playbook:
```bash
ansible-playbook -K -i inventory/hosts.yml site.yml
``` ```
## Usage ## Usage
@@ -30,29 +46,44 @@ sudo pacman -S ansible ansible-lint
Run the full site playbook: Run the full site playbook:
```bash ```bash
ansible-playbook site.yml ansible-playbook -K -i inventory/hosts.yml site.yml
``` ```
Run only tasks matching a specific tag: Run only tasks matching a specific tag:
```bash ```bash
ansible-playbook site.yml --tags <tagname> ansible-playbook -K -i inventory/hosts.yml site.yml --tags <tagname>
``` ```
Skip tasks matching a tag: Skip tasks matching a tag:
```bash ```bash
ansible-playbook site.yml --skip-tags <tagname> ansible-playbook -K -i inventory/hosts.yml site.yml --skip-tags <tagname>
``` ```
## Roles
| Role | Play | Description |
|------|------|-------------|
| firewall | system | ufw, default deny incoming, allow port 22 |
| packages | system | General packages via pacman |
| docker | system | Docker, enables service, adds user to docker group |
| virtualization | system | qemu-full, virt-manager, libvirtd |
| web | system | hcloud, hugo, tea |
| flatpak | system | Flatpak and apps, MakeMKV device permissions |
| gpg | user | Import GPG keys from private git repo |
| ssh | user | Deploy SSH keys and config from pass |
| pass | user | Clone pass password store |
| dotfiles | user | Clone dotfiles and nvim repos, symlink configs |
| scripts | user | Clone scripts repo, add to PATH, deploy Pushover credentials |
| hotkeys | user | Deploy .desktop files, set Plasma 6 global shortcuts |
## Structure ## Structure
``` ```
. .
├── bootstrap.yml # New machine bootstrap
├── site.yml # Main entry point ├── site.yml # Main entry point
├── inventory/ # Inventory files ├── inventory/ # Inventory files
── roles/ # Ansible roles ── roles/ # Ansible roles
└── group_vars/ # Variables by group
``` ```
> Structure will grow as roles are added.