Add macOS development station playbook and role
- Created a new Ansible playbook for configuring macOS development stations. - Added role `macos_dev_station` with default variables, handlers, and tasks. - Implemented tasks for installing Homebrew packages, managing user configurations, and setting up launch agents for code-server and opencode. - Included templates for launchd plist files and startup scripts for code-server and opencode. - Added validation for required environment variables and configurations. - Updated inventory to include macOS hosts and added a setup script for initial prerequisites. - Modified Terraform configuration to include DNS records for new services.
This commit is contained in:
@@ -0,0 +1,178 @@
|
||||
hostname: mac-01.lab.alexpires.me
|
||||
ansible_user: "{{ lookup('env', 'ANSIBLE_USER') }}"
|
||||
|
||||
ansible_become_password: "{{ lookup('env', 'ANSIBLE_BECOME_PASSWORD', default='') }}"
|
||||
|
||||
macos_dev_station_launchd_mode: "daemon"
|
||||
macos_dev_station_service_user_enabled: true
|
||||
macos_dev_station_service_user: "devstation"
|
||||
macos_dev_station_service_group: "staff"
|
||||
macos_dev_station_service_home: "/Users/devstation"
|
||||
macos_dev_station_workspace_dir: "/Users/devstation/projects"
|
||||
macos_dev_station_scripts_dir: "/Users/devstation/scripts"
|
||||
macos_dev_station_logs_dir: "/Users/devstation/Library/Logs"
|
||||
|
||||
macos_dev_station_code_server_host: "0.0.0.0"
|
||||
macos_dev_station_code_server_port: 3000
|
||||
macos_dev_station_code_server_auth: "password"
|
||||
|
||||
macos_dev_station_colima_enabled: true
|
||||
macos_dev_station_colima_cpu: 4
|
||||
macos_dev_station_colima_memory: 8
|
||||
|
||||
macos_dev_station_opencode_server_host: "0.0.0.0"
|
||||
macos_dev_station_opencode_server_port: 4096
|
||||
macos_dev_station_manage_launchd: true
|
||||
macos_dev_station_oh_my_zsh_enabled: true
|
||||
|
||||
macos_dev_station_code_server_extensions_enabled: true
|
||||
macos_dev_station_code_server_extensions:
|
||||
- ms-python.python
|
||||
- ms-python.vscode-pylance
|
||||
- ms-python.debugpy
|
||||
- golang.go
|
||||
- ms-azuretools.vscode-docker
|
||||
- hashicorp.terraform
|
||||
- opentofu.vscode-opentofu
|
||||
- redhat.ansible
|
||||
- redhat.vscode-yaml
|
||||
- eamodio.gitlens
|
||||
- sst-dev.opencode
|
||||
|
||||
macos_dev_station_mcp_bootstrap_commands: []
|
||||
|
||||
macos_dev_station_mcp_installers_enabled: true
|
||||
macos_dev_station_mcp_installers:
|
||||
- name: "chrome-devtools-mcp"
|
||||
kind: "npm"
|
||||
package: "chrome-devtools-mcp"
|
||||
version: "latest"
|
||||
- name: "playwright-mcp"
|
||||
kind: "npm"
|
||||
package: "@playwright/mcp"
|
||||
version: "latest"
|
||||
- name: "aws-documentation-mcp"
|
||||
kind: "uv"
|
||||
package: "awslabs.aws-documentation-mcp-server"
|
||||
version: "latest"
|
||||
binary: "awslabs.aws-documentation-mcp-server"
|
||||
- name: "gitea-mcp"
|
||||
kind: "go"
|
||||
module: "gitea.com/gitea/gitea-mcp"
|
||||
version: "latest"
|
||||
binary: "gitea-mcp"
|
||||
|
||||
macos_dev_station_opencode_extra_environment:
|
||||
GITEA_MCP_HOST: "https://code.alexpires.me"
|
||||
GITEA_APP_TOKEN: "{{ lookup('env', 'GITEA_APP_TOKEN', default='') }}"
|
||||
|
||||
macos_dev_station_opencode_config:
|
||||
"$schema": "https://opencode.ai/config.json"
|
||||
provider:
|
||||
alexpires-me:
|
||||
name: "alexpires.me"
|
||||
npm: "@ai-sdk/openai-compatible"
|
||||
options:
|
||||
baseURL: "https://open-webui.lab.alexpires.me/api"
|
||||
apiKey: "{{ lookup('env', 'OPEN_WEBUI_API_KEY', default='') }}"
|
||||
models:
|
||||
gemma-4-12b-q8-0:
|
||||
name: "gemma-4-12b-q8-0"
|
||||
gemma-4-26b-a4b-ud-iq4-xs:
|
||||
name: "gemma-4-26b-a4b-ud-iq4-xs"
|
||||
gemma-4-31b-iq4-xs:
|
||||
name: "gemma-4-31b-iq4-xs"
|
||||
gpt-oss-20b-q4-0:
|
||||
name: "gpt-oss-20b-q4-0"
|
||||
gpt-oss-20b-q8-0:
|
||||
name: "gpt-oss-20b-q8-0"
|
||||
qwen3-5-35b-a3b-q4-k-m:
|
||||
name: "qwen3-5-35b-a3b-q4-k-m"
|
||||
qwen3-5-9b-q8-0:
|
||||
name: "qwen3-5-9b-q8-0"
|
||||
qwen3-6-27b-mtp-q4-0:
|
||||
name: "qwen3-6-27b-mtp-q4-0"
|
||||
qwen3-6-27b-q4-k-m:
|
||||
name: "qwen3-6-27b-q4-k-m"
|
||||
qwen3-6-35b-a3b-mtp-ud-q4-m:
|
||||
name: "qwen3-6-35b-a3b-mtp-ud-q4-m"
|
||||
qwen3-6-35b-a3b-ud-q4-k-m:
|
||||
name: "qwen3-6-35b-a3b-ud-q4-k-m"
|
||||
"gemma4:e4b":
|
||||
name: "gemma4:e4b (scaleway)"
|
||||
"qwen3.5:9b":
|
||||
name: "qwen3.5:9b (scaleway)"
|
||||
gpt-oss-120b:
|
||||
name: "gpt-oss-120b (scaleway)"
|
||||
qwen3.5-397b-a17b:
|
||||
name: "qwen3.5-397b-a17b (scaleway)"
|
||||
qwen3.6-35b-a3b:
|
||||
name: "qwen3.6-35b-a3b (scaleway)"
|
||||
gemma-4-26b-a4b-it:
|
||||
name: "gemma-4-26b-a4b-it (scaleway)"
|
||||
mcp:
|
||||
deepwiki:
|
||||
type: "remote"
|
||||
url: "https://mcp.deepwiki.com/mcp"
|
||||
enabled: true
|
||||
terraform:
|
||||
type: "remote"
|
||||
url: "http://terraform-mcp.lab.alexpires.me/mcp"
|
||||
enabled: true
|
||||
opentofu:
|
||||
type: "remote"
|
||||
url: "https://mcp.opentofu.org/mcp"
|
||||
enabled: true
|
||||
microsoft_learn:
|
||||
type: "remote"
|
||||
url: "https://learn.microsoft.com/api/mcp"
|
||||
enabled: true
|
||||
mozilla_developer:
|
||||
type: "remote"
|
||||
url: "https://mcp.mdn.mozilla.net/"
|
||||
enabled: true
|
||||
chrome_devtools:
|
||||
type: "local"
|
||||
command:
|
||||
- "npx"
|
||||
- "-y"
|
||||
- "chrome-devtools-mcp@latest"
|
||||
- "--headless"
|
||||
- "--isolated"
|
||||
enabled: true
|
||||
playwright:
|
||||
type: "local"
|
||||
command:
|
||||
- "npx"
|
||||
- "-y"
|
||||
- "@playwright/mcp@latest"
|
||||
- "--headless"
|
||||
- "--isolated"
|
||||
enabled: true
|
||||
aws_documentation:
|
||||
type: "local"
|
||||
command:
|
||||
- "uvx"
|
||||
- "awslabs.aws-documentation-mcp-server@latest"
|
||||
enabled: true
|
||||
gitea:
|
||||
type: "local"
|
||||
command:
|
||||
- "gitea-mcp"
|
||||
- "-t"
|
||||
- "stdio"
|
||||
- "-H"
|
||||
- "{env:GITEA_MCP_HOST}"
|
||||
- "-T"
|
||||
- "{env:GITEA_APP_TOKEN}"
|
||||
enabled: true
|
||||
compaction:
|
||||
auto: true
|
||||
prune: true
|
||||
reserved: 32768
|
||||
|
||||
macos_dev_station_service_user_ssh_enabled: true
|
||||
macos_dev_station_service_user_ssh_authorized_keys:
|
||||
- >-
|
||||
ecdsa-sha2-nistp521
|
||||
AAAAE2VjZHNhLXNoYTItbmlzdHA1MjEAAAAIbmlzdHA1MjEAAACFBAHHOPBR9p9kq5Cqzpe4cr3jHnweaYrHPXv5sXNzt+sCXP54uc5rWUBhxW2OQVvQzJ47dEVhEKi4WSC7LcuKS2G5AQDzWXNiasHvYIYQU3F/EknVCZnsiXYqXphYkJA6rJCNRnISZCIC1mocq6PB7J08ONdRFCvjfUBuVRT8BNGXNmQ/zQ==
|
||||
Reference in New Issue
Block a user