How to install Homebrew with Ansible
I’ve tried shell, command and https://github.com/geerlingguy/ansible-role-homebrew but here is the answer. File structure.
roles/brew
├── files
│ └── install-homebrew.sh
└── tasks
└── main.yml
main.yml
---
- name: Check if Homebrew is already installed
stat:
path: /usr/local/bin/brew
register: b
- name: Install Homebrew
script: install-homebrew.sh
when: not b.stat.exists
install-homebrew.sh
#!/bin/bash
yes | /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Problems with other ways to do it
curl command prompts user something so we need to add yes
to pass y
This means we cannot use Ansible command module, because pipe is not supported.
Shell module seems to run the command properly, but for some reason it does not
exit ever (perhaps because yes
runs forever).