{"id":20665870,"url":"https://github.com/catap/macos-ansible-playbooks","last_synced_at":"2026-04-17T16:03:03.529Z","repository":{"id":56743047,"uuid":"524407107","full_name":"catap/macos-ansible-playbooks","owner":"catap","description":"macOS + MacPorts + ansible = ❤️️","archived":false,"fork":false,"pushed_at":"2023-05-09T10:03:18.000Z","size":87,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-17T12:54:53.810Z","etag":null,"topics":["ansible","macos","macports"],"latest_commit_sha":null,"homepage":"","language":"Jinja","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/catap.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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":"2022-08-13T13:29:25.000Z","updated_at":"2023-07-21T19:49:48.000Z","dependencies_parsed_at":"2024-11-16T19:34:23.448Z","dependency_job_id":"4bed67bb-2bb6-48fb-b4ca-ea470e492cc8","html_url":"https://github.com/catap/macos-ansible-playbooks","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/catap/macos-ansible-playbooks","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/catap%2Fmacos-ansible-playbooks","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/catap%2Fmacos-ansible-playbooks/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/catap%2Fmacos-ansible-playbooks/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/catap%2Fmacos-ansible-playbooks/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/catap","download_url":"https://codeload.github.com/catap/macos-ansible-playbooks/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/catap%2Fmacos-ansible-playbooks/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31935697,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-17T12:37:54.787Z","status":"ssl_error","status_checked_at":"2026-04-17T12:37:25.095Z","response_time":62,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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","macports"],"created_at":"2024-11-16T19:34:21.723Z","updated_at":"2026-04-17T16:03:03.492Z","avatar_url":"https://github.com/catap.png","language":"Jinja","funding_links":[],"categories":[],"sub_categories":[],"readme":"# macOS ansible playbook\n\nHere a playbook which installs and updates MacPorts, also it may optionally\nbootstrap MacPorts to get the last version of curl, and updates the system on\ndefined list of macOS machines.\n\nThe main goal is install MacPorts which is linked against `curl` inside\nbootstrap MacPorts to fix not working SSL. See: https://trac.macports.org/ticket/51516\n\nIt also forces ansible to use a python from bootstrap MacPorts that allows to\nsupport old systems like 10.5.\n\nThis playbook supports integration with Parallels which to make a snapshot for\neach update, and zeros freespace to save your host disk :)\n\nTo use it add your ssh key into `keys` folder with used username and create\n`hosts` files like:\n\n```\n# -*- coding: utf-8; mode: conf; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=conf:et:sw=4:ts=4:sts=4\n\n[macos]\nleopard             prl_id=b7151a56-371b-4b63-87db-6533e00da1da ansible_ssh_host=macos-10.5-leopard.shared\nsnow-leopard        prl_id=e7448af8-cbfa-4560-be77-dd0770ac09dd ansible_ssh_host=macos-10.6-snow-leopard.shared\nsnow-leopard-ppc    prl_id=e6539544-6023-47bb-a9a3-d11854e50502 ansible_ssh_host=macos-10.6-ppc-snow-leopard.shared\nlion                prl_id=f0b1c3ca-94a8-477a-87de-9eec40c377b9 ansible_ssh_host=macos-10.7-lion.shared\nmountain-lion       prl_id=f4dec53b-b5ac-4bbd-bc08-c1ac32a42149 ansible_ssh_host=macos-10.8-mountain-lion.shared\nmavericks           prl_id=276f0cd8-6111-412a-8eb0-60d0c95ff3fd ansible_ssh_host=macos-10.9-mavericks.shared\nyosemite            prl_id=6c015234-ff64-4755-8f92-811ae9549aca ansible_ssh_host=macos-10.10-yosemite.shared\nel-capitan          prl_id=ec579726-d901-4ad0-9ea5-65f04fe0a8ec ansible_ssh_host=macos-10.11-el-capitan.shared\nsierra              prl_id=3212426b-c412-4c64-9de1-d9f9016144fb ansible_ssh_host=macos-10.12-sierra.shared\nhigh-sierra         prl_id=7b1e3cd9-58e0-4c99-bda7-377efba195d5 ansible_ssh_host=macos-10.13-high-sierra.shared\nmojave              prl_id=1033dba8-f5fc-47b8-adf1-19ac8390b87a ansible_ssh_host=macos-10.14-mojave.shared\ncatalina            prl_id=0d3de040-2ef0-43f0-8d46-4046c6d59198 ansible_ssh_host=macos-10.15-catalina.shared\nbigsur              prl_id=04b5fb7d-90bb-41ba-965a-f7312c692d9e ansible_ssh_host=macos-11-big-sur.shared\nmonterey            prl_id=b03b0f30-0158-4fe6-ab6a-2197d1d6a24b ansible_ssh_host=macos-12-monterey.shared\n\n[bootstrap_curl]\nleopard\nsnow-leopard\nsnow-leopard-ppc\nlion\nmountain-lion\nmavericks\n\n[bootstrap_python]\nleopard\nsnow-leopard\nsnow-leopard-ppc\n\n[rosetta_ppc]\nsnow-leopard-ppc\n\n[skip_parallels_tools]\n# Parallels Tools v15 works on leopard, so, no Update\nleopard\n```\nwhere `prl_id` is optional variable which contains a unique ID of Parallels' VM,\nand it uses `ansible_ssh_host` to suggest an address which should be used by ansible.\n\nAfter that a simple run `ansible-playbook maintenance.yml` start to update\neverything.\n\nYou may see that switching ports tree was disabled for 10.5; by default it\nswitches ports tree to `file:///Volumes/SharedFolders/Home/src/macports-ports`\nwith enabled `nosync` option.\n\nI also enable a custom python for 10.5 and using curl up to 10.10, and switched\nall MacPorts to `file:///Volumes/SharedFolders/Home/src/macports-ports`.\n\nThus, it starts VM one-by-one, but if you have enough resources to run more VMs,\nfeel free to increase ansible serial via `servar` variale. For example\n`ansible-playbook -e servar=2 maintenance.yml` runs two VM in parallel.\n\nIt also has additional playbook `shrink.yml` which fills the disk by zeros,\n`cleanup.yml` that only cleanup a disk, and `nuke.yml` which removes installed MacPorts.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcatap%2Fmacos-ansible-playbooks","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcatap%2Fmacos-ansible-playbooks","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcatap%2Fmacos-ansible-playbooks/lists"}