- Ensure Apple's command line tools are installed (
xcode-select --install
to launch the installer). - Install homebrew the official way ('/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"')
- Install Ansible. ('sudo easy_install pip && sudo pip install ansible')
- Disable Apple Gatekeeper to run unsigned code (
sudo spctl --master-disable
) - Clone this repository to your local drive.
- Run
$ ansible-galaxy install -r requirements.yml
inside this directory to install required Ansible roles. - Run
ansible-playbook main.yml -i inventory -K
inside this directory. Enter your account password when prompted. - You may have to run this extra times because shruggie
- Sign into Dropbox to download 1password sync
- Activate licenses for Omnifocus, Omnioutliner, Omnigraffle, Sketch, Scrivener
- Install ohmyzsh (
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
) - Fix .zshrc (
rm ~/.zshrc && ln -s ~/code/dotfiles/.zshrc ~/.zshrc
) - Install powerline fonts (
cd ~/code && git clone https://github.com/powerline/fonts.git powerline && cd powerline && ./install.sh && cd .. && rm powerline && cd ~
) - Launch programs that need to autostart
- Caffeine
- Docker
- Satellite Eyes
- 1password, now that it's probably synched up
- setup gnupg
- hopefully the .gnupg folder of configs moves over from dotfiles
- Fetch the keyserver key (
sudo curl -s "https://sks-keyservers.net/sks-keyservers.netCA.pem" -o /etc/sks-keyservers.netCA.pem
) - Install your own damn key (
gpg --recv-keys 0x877E3D1B0E162847
) - Add email accounts
- Make your cursor huge in Accessibility
Note: If some Homebrew commands fail, you might need to agree to Xcode's license or fix some other Brew issue. Run
brew doctor
to see if this is the case.
You can filter which part of the provisioning process to run by specifying a set of tags using ansible-playbook
's --tags
flag. The tags available are dotfiles
, homebrew
, mas
and osx
.
ansible-playbook main.yml -i inventory -K --tags "dotfiles,homebrew"
Not everyone's development environment and preferred software configuration is the same.
You can override any of the defaults configured in default.config.yml
by creating a config.yml
file and setting the overrides in that file. For example, you can customize the installed packages and apps with something like:
homebrew_installed_packages:
- cowsay
- git
- go
They're at: https://github.com/riordan/dotfiles
Update them there or change the location
homebrew_installed_packages:
- zsh
- zsh-completions
- gnupg
- git
- git-lfs
- hub
- sqlite
- node
- nvm
- wget
- gifsicle
- go
- python3
- python
- gcc
- ykpers
- gdal
- tmux
- boost
- boost-python
- vim
- htop
- pinentry-mac
- libyubikey
- imagemagick --with-webp
homebrew_cask_apps:
- docker
- dropbox
- firefox
- google-chrome
- spotify
- skitch
- slack
- atom
- cyberduck
- evernote
- omnifocus
- omnioutliner
- 1password
- scrivener
- signal
- sketch
- vagrant
- virtualbox
- tomighty
- torbrowser
- zotero
- iterm2
- satellite-eyes
- vlc
- little-snitch
- colloquy
- java
- libreoffice
- soqlxplorer
- eclipse-java
- sfdx
pip_install_packages: - awscli
Many people have asked me if I often wipe my entire workstation and start from scratch just to test changes to the playbook. Nope! Instead, I posted instructions for how I build a Mac OS X VirtualBox VM, on which I can continually run and re-run this playbook to test changes and make sure things work correctly.