Device Provisioning¶
Ansible-based setup for macOS and Linux workstations.
🎯 Two-Phase Setup¶
Phase 1: Bootstrap (SSH + Secrets)¶
Run the encrypted bootstrap bundle to get basic access:
This installs:
- SSH keys
- Infisical credentials
- coder-core repository
- Basic SSH config
Phase 2: Full Provisioning (Ansible)¶
Run the playbook to install all development tools:
# From any device with ansible installed
cd ~/coder-core/ansible
ansible-playbook playbooks/device-setup.yml -i inventory/devices.yml --limit mac-mini
📦 What Gets Installed¶
| Category | Tools |
|---|---|
| Core CLI | git, curl, jq, htop, ripgrep, fd, fzf, tmux |
| Security | age, infisical |
| DevOps | terraform, rclone, docker |
| Languages | node, python3 |
| Shell | zsh + aliases |
🖥️ Supported Devices¶
| Device | OS | Tailscale IP | Status |
|---|---|---|---|
| macbook-pro | macOS ARM64 | localhost | ✅ Primary |
| mac-mini | macOS Intel | 100.98.13.38 | ✅ Active |
| linux-workstation | Ubuntu | 100.123.112.36 | ✅ Active |
📋 Commands¶
# Setup Mac Mini
ansible-playbook playbooks/device-setup.yml -i inventory/devices.yml --limit mac-mini
# Setup Linux workstation
ansible-playbook playbooks/device-setup.yml -i inventory/devices.yml --limit linux-workstation
# Setup all macOS devices
ansible-playbook playbooks/device-setup.yml -i inventory/devices.yml --limit macos_devices
# Essentials only (skip dev tools)
ansible-playbook playbooks/device-setup.yml -i inventory/devices.yml --limit mac-mini -e "install_dev_tools=false"
🔧 Customization¶
Edit ansible/inventory/devices.yml to:
- Add new devices
- Change packages per device
- Modify SSH hosts
Edit ansible/roles/workstation/vars/*.yml to:
- Add OS-specific packages
- Configure Homebrew casks (macOS)
- Set default tools