Ansible Role Homebrew

Ansible Role - Homebrew (MOVED to geerlingguy.mac collection)
Alternatives To Ansible Role Homebrew
Project NameStarsDownloadsRepos Using ThisPackages Using ThisMost Recent CommitTotal ReleasesLatest ReleaseOpen IssuesLicenseLanguage
Molecule3,527525253 days ago188June 16, 202249mitPython
Molecule aids in the development and testing of Ansible roles
Ansible Collection Hardening3,163
2 days ago33apache-2.0Jinja
This Ansible collection provides battle tested hardening for Linux, SSH, nginx, MySQL
Ansible Lint3,034582112 days ago180June 09, 202269gpl-3.0Python
ansible-lint checks playbooks for practices and behavior that could potentially be improved
4 months ago3mitYAML
Ansible role to deploy scripting applications like PHP, Python, Ruby, etc. in a capistrano style
Ansible Elasticsearch1,507
9 months ago13otherRuby
Ansible playbook for Elasticsearch
Ansible Role Docker1,382
12 days ago32mit
Ansible Role - Docker
Openstack Ansible1,353
2 days agoapache-2.0Python
Ansible playbooks for deploying OpenStack. Mirror of code maintained at
a day ago301gpl-3.0Jinja
DebOps - Your Debian-based data center in a box
Ansible Role Mysql968
a month ago13mitJinja
Ansible Role - MySQL
Awesome Ansible871
8 months ago1cc0-1.0
A collaborative curated list of awesome Ansible resources
Alternatives To Ansible Role Homebrew
Select To Compare

Alternative Project Comparisons

Ansible Role: Homebrew (MOVED)

MOVED: This role has been moved into the geerlingguy.mac collection. Please see this issue for a migration guide and more information.

MIT licensed Galaxy Role Downloads CI

Installs Homebrew on MacOS, and configures packages, taps, and cask apps according to supplied variables.



Role Variables

Available variables are listed below, along with default values (see defaults/main.yml):


The GitHub repository for Homebrew core.

homebrew_prefix: "{{ (ansible_machine == 'arm64') | ternary('/opt/homebrew', '/usr/local') }}"
homebrew_install_path: "{{ homebrew_prefix }}/Homebrew"

The path where Homebrew will be installed (homebrew_prefix is the parent directory). It is recommended you stick to the default, otherwise Homebrew might have some weird issues. If you change this variable, you should also manually create a symlink back to /usr/local so things work as Homebrew expects.

homebrew_brew_bin_path: /usr/local/bin

The path where brew will be installed.

  - ssh-copy-id
  - pv
  - { name: vim, install_options: "with-luajit,override-system-vi" }

Packages you would like to make sure are installed via brew install. You can optionally add flags to the install by setting an install_options property, and if used, you need to explicitly set the name for the package as well. By default, no packages are installed (homebrew_installed_packages: []).

homebrew_uninstalled_packages: []

Packages you would like to make sure are uninstalled.

homebrew_upgrade_all_packages: false

Whether to upgrade homebrew and all packages installed by homebrew. If you prefer to manually update packages via brew commands, leave this set to false.

  - homebrew/core
  - { name: my_company/internal_tap, url: '' }

Taps you would like to make sure Homebrew has tapped.

  - firefox
  - { name: virtualbox, install_options:"debug,appdir=/Applications" }

Apps you would like to have installed via cask. Search for popular apps to see if they're available for install via Cask. Cask will not be used if it is not included in the list of taps in the homebrew_taps variable. You can optionally add flags to the install by setting an install_options property, and if used, you need to explicitly set the name for the package as well. By default, no Cask apps will be installed (homebrew_cask_apps: []).

homebrew_cask_accept_external_apps: true

Default value is false and would result in interruption of further processing of the whole role (and ansible play) in case any app given in homebrew_cask_apps is already installed without cask. Good for a tightly managed system.

Specify as true instead if you prefer to silently continue if any App is already installed without cask. Generally good for a system that is managed with cask / Ansible as well as other install methods (like manually) at the same time.

  - google-chrome

Apps you would like to make sure are uninstalled.

homebrew_cask_appdir: /Applications

Directory where applications installed via cask should be installed.

homebrew_use_brewfile: true

Whether to install via a Brewfile. If so, you will need to install the homebrew/bundle tap, which could be done within homebrew_taps.

homebrew_brewfile_dir: '~'

The directory where your Brewfile is located.

homebrew_clear_cache: false

Set to true to remove the Hombrew cache after any new software is installed.

homebrew_user: "{{ ansible_user_id }}"

The user that you would like to install Homebrew as.

homebrew_group: "{{ ansible_user_gid }}"

The group that you would like to use while installing Homebrew.

homebrew_folders_additional: []

Any additional folders inside homebrew_prefix for which to ensure homebrew user/group ownership.


Example Playbook

- hosts: localhost
      - mysql
    - geerlingguy.homebrew

See the tests/local-testing directory for an example of running this role over Ansible's local connection. See also: Mac Development Ansible Playbook.



Author Information

This role was created in 2014 by Jeff Geerling, author of Ansible for DevOps.


Popular Role Projects
Popular Ansible Projects
Popular Security Categories
Related Searches

Get A Weekly Email With Trending Projects For These Categories
No Spam. Unsubscribe easily at any time.
Package Manager