{"id":31628073,"url":"https://github.com/jirutka/macos-init","last_synced_at":"2025-10-06T20:17:44.685Z","repository":{"id":198316185,"uuid":"700546680","full_name":"jirutka/macos-init","owner":"jirutka","description":"Simplified cloud-init for macOS","archived":false,"fork":false,"pushed_at":"2025-03-26T22:55:38.000Z","size":32,"stargazers_count":5,"open_issues_count":6,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-26T23:32:15.625Z","etag":null,"topics":["cloud-init","macos","opennebula","provisioning","proxmox","vm"],"latest_commit_sha":null,"homepage":"","language":"Shell","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/jirutka.png","metadata":{"files":{"readme":"README.adoc","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":"2023-10-04T19:46:10.000Z","updated_at":"2025-03-26T22:55:42.000Z","dependencies_parsed_at":"2023-11-11T14:15:42.748Z","dependency_job_id":"f6bf3ccb-b5cd-41b8-b6a4-4225e9bf52a2","html_url":"https://github.com/jirutka/macos-init","commit_stats":{"total_commits":25,"total_committers":1,"mean_commits":25.0,"dds":0.0,"last_synced_commit":"c45d336fed8e5fa15553da8565231962881fb9da"},"previous_names":["jirutka/macos-init"],"tags_count":10,"template":false,"template_full_name":null,"purl":"pkg:github/jirutka/macos-init","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jirutka%2Fmacos-init","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jirutka%2Fmacos-init/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jirutka%2Fmacos-init/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jirutka%2Fmacos-init/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jirutka","download_url":"https://codeload.github.com/jirutka/macos-init/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jirutka%2Fmacos-init/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278672050,"owners_count":26025826,"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-10-06T02:00:05.630Z","response_time":65,"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":["cloud-init","macos","opennebula","provisioning","proxmox","vm"],"created_at":"2025-10-06T20:17:41.551Z","updated_at":"2025-10-06T20:17:44.677Z","avatar_url":"https://github.com/jirutka.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"= macOS-init\n:proj-name: macos-init\n:version: 0.1.9\n:gh-name: jirutka/{proj-name}\n:scripts-dir: share/scripts\n\nThis project provides “provisioning” scripts for macOS virtual machines running on platforms supporting https://cloudinit.readthedocs.io/en/latest/reference/datasources/nocloud.html[cloud-init/nocloud] or OpenNebula (more platforms may be supported in the future).\n\nWIP\n\n\n== Supported platforms\n\n=== Cloud-init/nocloud\n\nThis platform reads parameters from files provided on an ISO 9660 (or VFAT) filesystem (typically a virtual CD-ROM) labeled `cidata`, specifically from the `meta-data` file and the `user-data` file in https://cloudinit.readthedocs.io/en/latest/reference/examples.html[cloud-config] format.\n\nBy default, `**$ADMIN_USER**` is mapped to the first user in the `users` directive or to the directive `user` (in this order of precedence).\n\n\n=== OpenNebula\n\nThis platform reads parameters from files on an ISO 9660 (or VFAT) filesystem (a virtual CD-ROM) labeled `CONTEXT`, specifically the `context.sh` shell script.\n\nBy default, `**$ADMIN_USER**` is mapped to `USERNAME` and `**$ADMIN_SSH_KEYS**` is mapped to the `SSH_PUBLIC_KEY` context variable.\n\n\n== Scripts\n\n=== link:{scripts-dir}/20-hostname[20-hostname]\n\nSets the hostname to `**$FQDN**` or, if not provided, `**$SET_HOSTNAME**`.\nIt should contain only alphanumeric ASCII characters, a hyphen and period (`[a-zA-Z0-9.-]`), all other characters will be replaced with a hyphen (`-`).\n\n\n=== link:{scripts-dir}/20-timezone[20-timezone]\n\nChanges the system timezone to `**$TIMEZONE**` (e.g. `Europe/Prague`, `UTC`), if provided.\n\n\n=== link:{scripts-dir}/30-network[30-network]\n\n*Note*: This script is fully supported only on *OpenNebula*. If you use Cloud-init/nocloud, you must specify `params_mapping` in link:etc/{proj-name}.conf[] according to your environment.\n\nConfigures network interfaces (using `networksetup`).\n\nIt supports the following variables:\n\n* `**$ETH\u003cn\u003e_MAC**` -- Used to find the correct interface by MAC address.\n* `**$ETH\u003cn\u003e_IPV4_METHOD**` -- Method how to configure IPv4 on the interface. Supported options:\n** `static` -- static configuration,\n** `dhcp` (or `dhcp4`) -- automatic using DHCP.\n* `**$ETH\u003cn\u003e_IPV4_ADDRESS**` -- IPv4 address for the interface (required for `static`).\n* `**$ETH\u003cn\u003e_IPV4_MASK**` -- IPv4 network mask for the interface (required for `static`).\n* `**$ETH\u003cn\u003e_IPV4_GATEWAY**` -- Default IPv4 gateway for the interface (required for `static`).\n* `**$ETH\u003cn\u003e_IPV6_METHOD**` -- Method how to configure IPv6 on the interface. Supported options:\n** `static` (or `static6`) -- static configuration,\n** `auto` (or `dhcp`, `dhcp6`, `ipv6_slaac`) -- automatic configuration (using SLAAC or DHCPv6),\n** `disable` -- disables IPv6 on the interface.\n* `**$ETH\u003cn\u003e_IPV6_ADDRESS**` -- IPv6 address for the interface (required for `static`).\n* `**$ETH\u003cn\u003e_IPV6_PREFIX**` -- IPv6 prefix for the interface (default is `/64`).\n* `**$ETH\u003cn\u003e_IPV6_GATEWAY**` -- Default IPv6 gateway for the interface (required for `static`).\n* `**$ETH\u003cn\u003e_DNS_SERVERS**` -- DNS servers (as space-separated addressess).\n* `**$ETH\u003cn\u003e_DNS_SEARCH**` -- The domain search list.\n\n\n=== link:{scripts-dir}/50-admin-user[50-admin-user]\n\nCreates an user account named `**$ADMIN_USER**` with the admin role and shell `**$ADMIN_SHELL**`.\n\nIf `**$ADMIN_USER**` is not provided, this script is skipped.\n\n\n=== link:{scripts-dir}/55-ssh-keys[55-ssh-keys]\n\nIf `**$ADMIN_SSH_KEYS**` with SSH public key(s) is provided, adds them to `authorized_keys` of the user specified in `**$ADMIN_USER**`.\n\n\n=== link:{scripts-dir}/80-grow-fs[80-grow-fs]\n\nExtends the root filesystem (container) to the maximum disk capacity.\nOnly APFS is currently supported.\n\n\n== Installation\n\n=== Using Homebrew\n\n[source, sh, subs=\"+attributes\"]\n----\nbrew tap {gh-name} https://github.com/{gh-name}\n\nbrew install {proj-name}\nsudo brew services start {proj-name}\n----\n\n\n=== From source tarball\n\n[source, sh, subs=\"+attributes\"]\n----\ncurl https://github.com/{gh-name}/archive/v{version}/{proj-name}-{version}.tar.gz | tar -xz\ncd {proj-name}-{version}\n\nsudo make install\nsudo launchctl load /Library/LaunchDaemons/cz.jirutka.{proj-name}.plist\n----\n\n\n=== From git\n\n[source, sh, subs=\"+attributes\"]\n----\ngit clone https://github.com/{gh-name}.git\ncd {proj-name}\n\nsudo make install\nsudo launchctl load /Library/LaunchDaemons/cz.jirutka.{proj-name}.plist\n----\n\n\n== License\n\nThis project is licensed under http://opensource.org/licenses/MIT/[MIT License].\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjirutka%2Fmacos-init","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjirutka%2Fmacos-init","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjirutka%2Fmacos-init/lists"}