Files
ansible-osx-setup/ansible_osx.yml
2019-09-08 17:26:04 +01:00

258 lines
7.4 KiB
YAML

---
- hosts: localhost
tasks:
- name: Install homebrew
shell: /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
- name: 'add custom homebrew repos'
homebrew_tap:
name: [
heroku/brew,
thoughtbot/formulae,
caskroom/versions,
adoptopenjdk/openjdk,
weaveworks/tap,
fishtown-analytics/dbt
]
- name: Install core packages via brew casks
homebrew_cask: name={{ item }} state=present
ignore_errors: yes
with_items:
- 1password
- android-sdk
- android-studio
- dash
- datagrip
- docker
- dropbox
- google-chrome
- google-cloud-sdk
- graphql-playground
- iterm2
- adoptopenjdk/openjdk/adoptopenjdk8
- kindle
- microsoft-office
- ngrok
- osxfuse
- postico
- postman
- rstudio
- sketch
- slack
- sublime-text
- tunnelblick
- vagrant
- virtualbox
- visual-studio-code
- vlc
- zeplin
- zoomus
- name: "Install homebrew packages"
homebrew:
name: [
'autoconf',
'automake',
'awscli',
'aws-iam-authenticator',
'coreutils',
'curl',
'dbt',
'erlang',
'fzf',
'gnu-time',
'gpg',
'heroku',
'imagemagick@6',
'kubectx',
'kubernetes-cli',
'kubernetes-helm',
'libtool',
'libxslt',
'libyaml',
'mas',
'mysql',
'openssl' ,
'pkg-config',
'postgresql',
'r',
'rcm',
'readline',
'redis',
'sqllite3',
'sshfs',
'tmux',
'terraform',
'unixodbc',
'unzip',
'vim',
'watchman',
'weaveworks/tap/eksctl',
'xz',
'yarn',
'zsh',
'zlib',
]
state: present
update_homebrew: yes
- name: "Link ImageMagick6 as main version (for rmagick gem)"
shell: brew link -f imagemagick@6
- git:
repo: https://github.com/asdf-vm/asdf.git
dest: "/Users/{{ lookup('env', 'USER') }}/.asdf"
version: v0.7.1
- name: Install Addroid SDKs etc
shell: yes | sdkmanager "{{ item }}" --sdk_root=/Users/{{ lookup('env', 'USER') }}/Library/Android/sdk
with_items:
- "add-ons;addon-google_apis-google-21"
- "add-ons;addon-google_apis-google-22"
- "add-ons;addon-google_apis-google-23"
- "build-tools;23.0.1"
- "build-tools;23.0.3"
- "build-tools;25.0.2"
- "build-tools;25.0.3"
- "build-tools;26.0.0"
- "build-tools;26.0.1"
- "build-tools;26.0.2"
- "build-tools;26.0.3"
- "build-tools;27.0.3"
- "build-tools;28.0.3"
- "extras;android;m2repository"
- "extras;google;google_play_services"
- "extras;google;m2repository"
- "extras;m2repository;com;android;support;constraint;constraint-layout;1.0.1"
- "extras;m2repository;com;android;support;constraint;constraint-layout;1.0.2"
- "platforms;android-23"
- "platforms;android-25"
- "platforms;android-26"
- "platforms;android-27"
- "platforms;android-28"
- "system-images;android-23;google_apis;x86"
- "system-images;android-26;google_apis;x86"
- name: Get the path to ZSH
become: false
local_action: command which zsh
register: zsh_path
- name: "Ensure homebrew zsh is in allowed shells"
lineinfile:
path: /etc/shells
line: "{{ zsh_path.stdout }}"
become: true
- name: Install Oh My ZSH
shell: sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
args:
creates: "/Users/{{ lookup('env', 'USER') }}/.oh-my-zsh"
- name: Set ZSH as the default shell
shell: chsh -s $(which zsh) {{ lookup('env', 'USER') }}
become: true
- name: "Create a default ZSH configuration"
template:
src: templates/.zshrc.j2
dest: /Users/{{ lookup('env', 'USER') }}/.zshrc
owner: "{{ lookup('env', 'USER') }}"
force: yes
- name: "Create a default asdf configuration"
template:
src: templates/.asdfrc.j2
dest: /Users/{{ lookup('env', 'USER') }}/.asdfrc
owner: "{{ lookup('env', 'USER') }}"
force: yes
- name: "Install asdf plugins"
shell: |
source /Users/{{ lookup('env', 'USER') }}/.asdf/asdf.sh
asdf plugin-add {{ item }} || exit 0
with_items:
- ruby
- elixir
- nodejs
- python
- name: "Install Default Python"
shell: |
export LDFLAGS="${LDFLAGS} -L/usr/local/opt/zlib/lib"
export CPPFLAGS="${CPPFLAGS} -I/usr/local/opt/zlib/include"
export PKG_CONFIG_PATH="${PKG_CONFIG_PATH} /usr/local/opt/zlib/lib/pkgconfig"
source /Users/{{ lookup('env', 'USER') }}/.asdf/asdf.sh
asdf install python 3.7.3
asdf global python 3.7.3
pip install boto
pip install ansible
pip install jupyterlab
pip isntall numpy
pip install scipy
pip install matplotlib
pip install ipython
pip install jupyter
pip install pandas
pip install sympy
pip install nose
asdf reshim python
- name: "Install Default Ruby"
shell: |
source /Users/{{ lookup('env', 'USER') }}/.asdf/asdf.sh
asdf install ruby 2.4.2
asdf global ruby 2.4.2
gem install bundler -v 1.17.3
gem install cocoapods
- name: "Install default node"
shell: |
source /Users/{{ lookup('env', 'USER') }}/.asdf/asdf.sh
bash /Users/{{ lookup('env', 'USER') }}/.asdf/plugins/nodejs/bin/import-release-team-keyring
asdf install nodejs 11.11.0
asdf install nodejs 10.8.0
asdf install nodejs 9.11.1
asdf global nodejs 11.11.0
- name: "Install default elixir"
shell: |
source /Users/{{ lookup('env', 'USER') }}/.asdf/asdf.sh
asdf install elixir 1.6
asdf install elixir 1.9.1
asdf global elixir 1.9.1
mix archive.install hex phx_new 1.4.9 --force
- name: Install yarn packages
shell: yarn global add {{ item }} --prefix /usr/local
with_items:
- react-native-cli
- create-react-app
- apollo
- generator-generator
- yo
- name: Install VSCode extensions
shell: code --install-extension {{ item }}
with_items:
- apollographql.vscode-apollo
- clinyong.vscode-css-modules
- eamodio.gitlens
- kaiwood.endwise
- karunamurti.haml
- ms-vscode.vscode-typescript-tslint-plugin
- PeterJausovec.vscode-docker
- peterjausovec.vscode-docker
- rebornix.ruby
- Tyriar.sort-lines
- vscoss.vscode-ansible
- name: Create a default VSCode configuration
template:
src: templates/vscode-settings.json.j2
dest: /Users/{{ lookup('env', 'USER') }}/Library/Application Support/Code/User/settings.json
owner: "{{ lookup('env', 'USER') }}"
force: no