--- - 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 - microsoft-office - ngrok - osxfuse - postico - postman - 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', 'rcm', 'readline', 'redis', 'sshfs', 'tmux', 'terraform', 'unixodbc', 'unzip', 'vim', 'watchman', 'weaveworks/tap/eksctl', '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 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 global elixir 1.6 - 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