https://github.com/geerlingguy/ansible-role-homebrew
Ansible Role - Homebrew (MOVED to geerlingguy.mac collection)
https://github.com/geerlingguy/ansible-role-homebrew
ansible brew homebrew mac macos package-manager role setup
Last synced: 5 months ago
JSON representation
Ansible Role - Homebrew (MOVED to geerlingguy.mac collection)
- Host: GitHub
- URL: https://github.com/geerlingguy/ansible-role-homebrew
- Owner: geerlingguy
- License: mit
- Archived: true
- Created: 2014-10-03T03:37:29.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2021-05-31T14:19:18.000Z (almost 4 years ago)
- Last Synced: 2024-08-03T09:05:23.402Z (8 months ago)
- Topics: ansible, brew, homebrew, mac, macos, package-manager, role, setup
- Language: Shell
- Homepage: https://galaxy.ansible.com/geerlingguy/homebrew/
- Size: 118 KB
- Stars: 228
- Watchers: 15
- Forks: 140
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
- awesome-list-ansible - ansible-role-homebrew - Homebrew for Mac (setup)
README
# Ansible Role: Homebrew (MOVED)
**MOVED**: This role has been moved into the `geerlingguy.mac` collection. Please see [this issue](https://github.com/geerlingguy/ansible-role-homebrew/issues/166) for a migration guide and more information.
[![MIT licensed][badge-license]][link-license]
[![Galaxy Role][badge-role]][link-galaxy]
[![Downloads][badge-downloads]][link-galaxy]
[![CI][badge-gh-actions]][link-gh-actions]Installs [Homebrew][homebrew] on MacOS, and configures packages, taps, and cask apps according to supplied variables.
## Requirements
None.
## Role Variables
Available variables are listed below, along with default values (see [`defaults/main.yml`](defaults/main.yml)):
homebrew_repo: https://github.com/Homebrew/brew
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.
homebrew_installed_packages:
- 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_taps:
- homebrew/core
- { name: my_company/internal_tap, url: 'https://example.com/path/to/tap.git' }Taps you would like to make sure Homebrew has tapped.
homebrew_cask_apps:
- firefox
- { name: virtualbox, install_options:"debug,appdir=/Applications" }Apps you would like to have installed via `cask`. [Search][caskroom] 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.
homebrew_cask_uninstalled_apps:
- google-chromeApps 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.
## Dependencies
- [elliotweiser.osx-command-line-tools][dep-osx-clt-role]
## Example Playbook
- hosts: localhost
vars:
homebrew_installed_packages:
- mysql
roles:
- geerlingguy.homebrewSee the `tests/local-testing` directory for an example of running this role over
Ansible's `local` connection. See also:
[Mac Development Ansible Playbook][mac-dev-playbook].## License
[MIT][link-license]
## Author Information
This role was created in 2014 by [Jeff Geerling][author-website], author of
[Ansible for DevOps][ansible-for-devops].#### Maintainer(s)
- [Jeff Geerling](https://github.com/geerlingguy)
- [Elliot Weiser](https://github.com/elliotweiser)[ansible-for-devops]: https://www.ansiblefordevops.com/
[author-website]: https://www.jeffgeerling.com/
[badge-downloads]: https://img.shields.io/ansible/role/d/1858.svg
[badge-license]: https://img.shields.io/github/license/geerlingguy/ansible-role-homebrew.svg
[badge-role]: https://img.shields.io/ansible/role/1858.svg
[badge-gh-actions]: https://github.com/geerlingguy/ansible-role-homebrew/workflows/CI/badge.svg?event=push
[caskroom]: https://caskroom.github.io/search
[homebrew]: http://brew.sh/
[dep-osx-clt-role]: https://galaxy.ansible.com/elliotweiser/osx-command-line-tools/
[link-galaxy]: https://galaxy.ansible.com/geerlingguy/homebrew/
[link-license]: https://raw.githubusercontent.com/geerlingguy/ansible-role-homebrew/master/LICENSE
[link-gh-actions]: https://github.com/geerlingguy/ansible-role-homebrew/actions?query=workflow%3ACI
[mac-dev-playbook]: https://github.com/geerlingguy/mac-dev-playbook