clegginabox / mac-dev-playbook

Mac setup and configuration via Ansible.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Mac Development Ansible Playbook

Build Status

This playbook installs and configures most of the software I use on my Mac for web and software development. Some things in macOS are slightly difficult to automate, so I still have some manual installation steps, but at least it's all documented here.

This is a work in progress, and is mostly a means for me to document my current Mac's setup. I'll be evolving this set of playbooks over time.

See also:

Installation

  1. Ensure Apple's command line tools are installed (xcode-select --install to launch the installer).
  2. Install Ansible.
  3. Clone this repository to your local drive.
  4. Run $ ansible-galaxy install -r requirements.yml inside this directory to install required Ansible roles.
  5. Run ansible-playbook main.yml -i inventory -K inside this directory. Enter your account password when prompted.

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.

Running a specific set of tagged tasks

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, extra-packages and osx.

ansible-playbook main.yml -i inventory -K --tags "dotfiles,homebrew"

Overriding Defaults

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

mas_installed_apps:
  - { id: 443987910, name: "1Password" }
  - { id: 498486288, name: "Quick Resizer" }
  - { id: 557168941, name: "Tweetbot" }
  - { id: 497799835, name: "Xcode" }

composer_packages:
  - name: hirak/prestissimo
  - name: drush/drush
    version: '^8.1'

gem_packages:
  - name: bundler
    state: latest

npm_packages:
  - name: webpack

pip_packages:
  - name: mkdocs

Any variable can be overridden in config.yml; see the supporting roles' documentation for a complete list of available variables.

Included Applications

Applications (installed with Homebrew Cask):

Packages (installed with Homebrew):

  • autoconf
  • bash-completion
  • composer
  • cowsay
  • git
  • node
  • npm
  • nvm
  • ssh-copy-id
  • yarn
  • wget

Author

Jeff Geerling, 2014 (originally inspired by MWGriffin/ansible-playbooks).

About

Mac setup and configuration via Ansible.

License:Other