Skip to content

An Ansible playbook to get initial tooling, dotfiles etc installed on macOS

Notifications You must be signed in to change notification settings

dancmeyers/ansible-macos

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

62 Commits
 
 
 
 
 
 
 
 

Repository files navigation

ansible-macos

Steps to set up a new Mac for development, and optionally some personal software too.

N.B. This has been tested on macOS Catalina. Settings, specifically osx defaults, may well change between releases.

Initial setup

Rename the Mac under System Preferences > Sharing > Computer Name > Edit....

Sync up any peripherals (so that defaults can apply to them).

Log in to the Mac App Store.

Install homebrew according to https://brew.sh.

Use hombrew to install git and ansible:

brew install git ansible

Create (or restore) the .ssh/id_rsa and .ssh/id_rsa.pub files, making sure permissions are correct. Give the key access to GitHub.

Install Rosetta 2 (if needed)

On Apple Silicon Macs, this will allow installation of software without a native ARM port. The updater is in /System/Library/CoreServices, or can be launched from the command line with

sudo softwareupdate --install-rosetta

This may well report an error as well as saying the install finished successfully, which seems to be fine...

Fetch and run the playbook

Check out this repo from GitHub:

mkdir ~/git && cd ~/git && git clone [email protected]:dancmeyers/ansible-macos.git

Install the community package using ansible-galaxy:

ansible-galaxy collection install community.general

Run the playbook (add --tags griffin|personal|etc to only install specific software etc based on role. base is included by default):

ansible-playbook playbook.yml --ask-become-pass

Perform manual config steps

  • Load GPG key into GnuPG
  • Grant SSH key access to mended-drum via the homedir_skel repo
  • Load Firefox and sign into gmail profile to sync extensions, bookmarks etc
  • Install the 1Password Classic Firefox plugin, that doesn't sync automatically from the Firefox profile.
  • Load InfiniteFunSpace mTLS cert into Firefox (and keychain if Chrome wanted)
  • Set iTerm2 to load preferences (Preferences > General > Preferences) from the plist in basic_system/files

Start/log in to apps

  • Docker
  • Google Backup and Sync
  • Jetbrains Toolbox
  • Keybase
  • Rectangle
  • Slack

Install/set up Jetbrains apps

Install via the Jetbrains Toolbox:

  • IntelliJ IDEA Ultimate
  • PyCharm Professional

Configure Preferences > Version Control > Commit > Use non-modal commit interface.

Use IDE Settings Sync to sync plugins, keymaps etc from other IDE installs.

Plugins

Shared (all apps)

  • .ignore
  • AWS Toolkit
  • Cloud Code (GCP tooling, disable unless gcloud configured)
  • Code With Me
  • File Watchers
  • HashiCorp Terraform
  • Kubernetes
  • Makefile support
  • Wrap to Column

Configure the Markdown plugin (bundled) to enable PlantUML support (Preferences > Languages & Frameworks > Markdown)

IntelliJ IDEA

  • Cursive
  • Perl (disable if not in use, conflicts with Cursive sometimes)
  • Scala

PyCharm

  • Requirements

Preferences

  • Appearance & Behavior > Appearance > Theme > macOS Light
  • Editor > Color Scheme > Darcula
  • Keymap > macOS custom

Dock shortcuts

  • Firefox
  • Google Chrome
  • Postman (if installed)
  • 1Password
  • Slack
  • Textual 7 (if installed)
  • Signal (if installed)
  • WhatsApp (if installed)
  • Discord (if installed)
  • Spotify
  • iTerm2
  • IntelliJ IDEA
  • PyCharm

Restart

Restart the system to make sure all the settings are applied.

About

An Ansible playbook to get initial tooling, dotfiles etc installed on macOS

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages