Skip to content

Instantly share code, notes, and snippets.

@kun432
Last active August 29, 2015 14:04
Show Gist options
  • Save kun432/20a527355c01462e049c to your computer and use it in GitHub Desktop.
Save kun432/20a527355c01462e049c to your computer and use it in GitHub Desktop.
[WIP] Ansible playbook for OSX setup
---
# osx setup
- hosts: localhost
connection: local
gather_facts: no
sudo: no
vars:
host_name: mac-mini
tasks:
- name: check homebrew installed
shell: which brew
register: homebrew_installed
failed_when: homebrew_installed.rc not in [0,1]
changed_when: homebrew_installed.rc == 1
- name: install homebrew
shell: ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"
when: homebrew_installed.rc == 1
- name: check homebrew installed correctly
shell: brew doctor
register: brew_doctor
failed_when: brew_doctor.rc != 0
# exec only once after homebrew is installed
when: homebrew_installed.rc == 1
- name: homebrew taps
homebrew_tap: tap={{ item }} state=present
with_items:
- homebrew/binary
- sanemat/font
- peco/peco
- name: update homebrew
homebrew: update_homebrew=yes
# - name: upgrade homebrew
# homebrew: upgrade_all=yes
# # ansible-1.6.8 installed by homebrew not support "upgrade_all"
# when: "'/usr/local/bin/brew' in homebrew_installed.stdout"
- name: install brew packages
homebrew: name={{ item.name }} state={{ item.state|default("latest") }} install_options={{ item.install_options|default() }}
with_items:
- { name: readline }
- { name: zsh, install_options: disable-etcdir }
- { name: git }
- { name: hub }
- { name: ruby-build }
- { name: rbenv }
- { name: perl-build }
- { name: plenv }
- { name: packer }
- { name: ricty }
- { name: go }
- { name: peco }
- { name: wget }
- name: homebrew-cask taps
homebrew_tap: tap={{ item }} state=present
with_items:
- caskroom/cask
- name: install homebrew-cask
homebrew: name=brew-cask state=latest
- name: install cask packages
homebrew_cask: name={{ item }} state=installed
with_items:
- dropbox
- flash
- google-chrome
- handbrake
- vagrant
- virtualbox
- atom
- google-japanese-ime
- adobe-reader
- geektool
- parallels
- vlc
- evernote
- coteditor
- iterm2
- scansnap-manager
- skitch
- cyberduck
- appcleaner
- calibre
- kindlegen
- kindle-previewer
- kobito
- name: check if homebrew's zsh is listed in /etc/shells
shell: grep "/usr/local/bin/zsh" /etc/shells
register: brew_zsh_listed
failed_when: brew_zsh_listed.rc not in [0,1]
changed_when: brew_zsh_listed.rc == 1
- name: add homebrew's zsh path to /etc/shells
shell: sudo sh -c "echo '/usr/local/bin/zsh' >> /etc/shells"
register: added_zsh
failed_when: added_zsh.rc != 0
when: brew_zsh_listed.rc == 1
- name: check hostname
shell: hostname
register: get_hostname
changed_when: get_hostname.rc != 0
- name: get hostname
shell: scutil --set HostName {{ host_name }}.local
when: get_hostname.stdout != "{{ host_name }}.local"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment