{"id":16685174,"url":"https://github.com/gperdomor/macos-ansible","last_synced_at":"2026-03-09T17:45:34.201Z","repository":{"id":48082986,"uuid":"99062798","full_name":"gperdomor/macOS-ansible","owner":"gperdomor","description":"Provision your Mac with Ansible","archived":false,"fork":false,"pushed_at":"2025-02-01T21:37:38.000Z","size":160,"stargazers_count":20,"open_issues_count":0,"forks_count":5,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-04-09T23:53:04.077Z","etag":null,"topics":["ansible","macos","playbook"],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gperdomor.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-08-02T02:23:47.000Z","updated_at":"2025-03-08T16:02:25.000Z","dependencies_parsed_at":"2025-04-09T23:53:04.877Z","dependency_job_id":"c0fc6f9a-2045-49e7-8a83-deef014bacc7","html_url":"https://github.com/gperdomor/macOS-ansible","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/gperdomor/macOS-ansible","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gperdomor%2FmacOS-ansible","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gperdomor%2FmacOS-ansible/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gperdomor%2FmacOS-ansible/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gperdomor%2FmacOS-ansible/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gperdomor","download_url":"https://codeload.github.com/gperdomor/macOS-ansible/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gperdomor%2FmacOS-ansible/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272936307,"owners_count":25018160,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-31T02:00:09.071Z","response_time":79,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ansible","macos","playbook"],"created_at":"2024-10-12T14:46:23.797Z","updated_at":"2026-03-09T17:45:29.182Z","avatar_url":"https://github.com/gperdomor.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"[![macOS](https://github.com/gperdomor/macOS-ansible/actions/workflows/ci.yml/badge.svg)](https://github.com/gperdomor/macOS-ansible/actions/workflows/ci.yml)\n\n# Ansible MacOS Playbook\n\nThis playbook installs and configures most of the software I use on my Mac for web and software development.\n\n## Installation\n\n1. Ensure Apple's command line tools are installed (xcode-select --install to launch the installer).\n2. [Install Ansible](https://docs.ansible.com/ansible/latest/installation_guide/index.html):\n   1. Run the following command to add Python 3 to your $PATH: `export PATH=\"$HOME/Library/Python/3.8/bin:/opt/homebrew/bin:$PATH\"`\n   2. Upgrade Pip: `sudo pip3 install --upgrade pip`\n   3. Install Ansible: `pip3 install ansible`\n3. Clone or download this repository to your local drive.\n4. Run `ansible-galaxy install -r requirements.yml` inside this directory to install required Ansible roles.\n5. Run `ansible-playbook main.yml --ask-become-pass` inside this directory. Enter your macOS account password when prompted for the 'BECOME' password.\n\n\u003e Note: If some Homebrew commands fail, you might need to agree to Xcode's license or fix some other Brew issue. Run `brew doctor` to see if this is the case.\n\n### Use with a remote Mac\n\nYou can use this playbook to manage other Macs as well; the playbook doesn't even need to be run from a Mac at all! If you want to manage a remote Mac, either another Mac on your network, or a hosted Mac like the ones from [MacStadium](https://www.macstadium.com), you just need to make sure you can connect to it with SSH:\n\n1. (On the Mac you want to connect to:) Go to System Preferences \u003e Sharing.\n2. Enable 'Remote Login'.\n\n\u003e You can also enable remote login on the command line:\n\u003e\n\u003e     sudo systemsetup -setremotelogin on\n\nThen edit the `inventory.yml` file in this repository and change the config to something like this:\n\n```yaml\n---\nmachines:\n  hosts:\n    [ip address or hostname of mac]:\n      ansible_user: [mac ssh username]\n```\n\nIf you need to supply an SSH password (if you don't use SSH keys), make sure to pass the `--ask-pass` parameter to the `ansible-playbook` command.\n\n### Running a specific set of tagged tasks\n\nYou can filter which part of the provisioning process to run by specifying a set of tags using `ansible-playbook`'s `--tags` flag. The tags available are `dotfiles`, `homebrew`, `mas`, `extra-packages` and `osx`.\n\n    ansible-playbook main.yml -K --tags \"dotfiles,homebrew\"\n\n## Overriding Defaults\n\nNot everyone's development environment and preferred software configuration is the same.\n\nYou can override any of the defaults configured in `default.config.yml` by creating a `config.yml` file and setting the overrides in that file. For example, you can customize the installed packages and apps with something like:\n\n```yaml\nhomebrew_installed_packages:\n  - cowsay\n  - git\n  - go\n\nmas_installed_apps:\n  - { id: 443987910, name: \"1Password\" }\n  - { id: 498486288, name: \"Quick Resizer\" }\n  - { id: 557168941, name: \"Tweetbot\" }\n  - { id: 497799835, name: \"Xcode\" }\n\nnpm_packages:\n  - name: webpack\n```\n\nAny variable can be overridden in `config.yml`; see the supporting roles' documentation for a complete list of available variables.\n\n## Acknowledgements\n\nThis playbook is heavily inspired by\n[Dan Bohea's macsible](https://github.com/macsible/macsible)\n[Jeff Geerling's mac-dev-playbook](https://github.com/geerlingguy/mac-dev-playbook) and [Jérôme Gamez's ansible-macos-playbook](https://github.com/jeromegamez/ansible-macos-playbook).\n\nThe macOS settings (a.k.a. `defaults write`s) are mostly taken from\n[Mathias Bynens' defaults scripts](https://mths.be/macos) or from one of the\ndotfiles repos from [http://dotfiles.github.io](http://dotfiles.github.io).\n\nYou can find other defaults [here](https://macos-defaults.com).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgperdomor%2Fmacos-ansible","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgperdomor%2Fmacos-ansible","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgperdomor%2Fmacos-ansible/lists"}