macbook-qa

Log | Files | Refs | README

commit d26627f0adca02c50b86ffea5b76d18c82a4ff60
parent c8fd51a2713420d8707f84cabf866ece33203377
Author: Chris Roberts <chris.roberts@learningunix.net>
Date:   Wed, 20 May 2026 05:18:09 -0500

added readme

Diffstat:
AREADME.md | 122+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 122 insertions(+), 0 deletions(-)

diff --git a/README.md b/README.md @@ -0,0 +1,122 @@ +# Macbook QA Workstation Provisioning + +Ansible playbook that sets up a MacBook Pro for QA work. Installs and configures: + +- **Xcode Command Line Tools** +- **Homebrew** (package manager) +- **Google Chrome** +- **iTerm2** +- **Powerlevel10k** (Zsh theme) + +Supports both Apple Silicon (M-series) and Intel Macs. + +--- + +## Prerequisites + +### 1. Install Ansible + +Ansible does not ship with macOS. Install it via pip: + +```bash +pip3 install ansible +``` + +Verify it worked: + +```bash +ansible --version +``` + +> If `pip3` is not found, install it first: +> ```bash +> sudo easy_install pip +> ``` +> Or install Python from [python.org](https://www.python.org/downloads/macos/) and use its bundled pip. + +### 2. Install the required Ansible collection + +```bash +ansible-galaxy collection install -r requirements.yml +``` + +--- + +## Running the Playbook + +### Dry run (no changes made) + +Always do this first to see what Ansible plans to do: + +```bash +ansible-playbook -i inventory/local.ini site.yml --check --diff +``` + +### Apply + +```bash +ansible-playbook -i inventory/local.ini site.yml +``` + +> **Note on Xcode Command Line Tools:** On a fresh Mac, macOS will pop up a GUI dialog asking you to click "Install". The playbook will wait up to 5 minutes for that step to complete before continuing. + +> **Note on Powerlevel10k:** After the playbook finishes, run `p10k configure` in a new terminal to set up your prompt style. + +--- + +## Customization + +### Add Homebrew packages + +Edit `group_vars/all.yml` and add to the `homebrew_packages` list: + +```yaml +homebrew_packages: + - git + - wget + - curl + - jq + - your-package-here +``` + +### Add Homebrew casks (GUI apps) + +Add to the `homebrew_casks` list in the same file: + +```yaml +homebrew_casks: + - slack + - postman +``` + +### iTerm2 preferences + +To deploy a shared iTerm2 config, export your preferences from iTerm2: + +**iTerm2 → Settings → General → Preferences → "Export preferences to a custom folder"** + +Copy the exported `com.googlecode.iterm2.plist` into: + +``` +roles/iterm2/files/com.googlecode.iterm2.plist +``` + +The playbook will pick it up automatically on the next run. + +> **Warning:** iTerm2 prefs can contain stored SSH passwords or profile credentials. This file is listed in `.gitignore` — do not force-add it to git. + +### Powerlevel10k config + +To share a pre-baked prompt config, copy your `~/.p10k.zsh` into: + +``` +roles/powerlevel10k/files/.p10k.zsh +``` + +The playbook will deploy it to `~` on the target machine. + +--- + +## Re-running + +The playbook is fully idempotent — running it again on an already-provisioned Mac produces zero changes.