--- - 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