{"id":25195928,"url":"https://github.com/bmemartin/proxmox-cloudinit","last_synced_at":"2025-04-04T15:44:02.706Z","repository":{"id":276710785,"uuid":"922825824","full_name":"bmemartin/proxmox-cloudinit","owner":"bmemartin","description":"Assists with the creation of Proxmox templates using cloud-based images.","archived":false,"fork":false,"pushed_at":"2025-01-27T06:23:51.000Z","size":3,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-10T01:39:11.035Z","etag":null,"topics":["cloudinit","homelab","proxmox"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":false,"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/bmemartin.png","metadata":{},"created_at":"2025-01-27T06:21:13.000Z","updated_at":"2025-01-31T10:21:12.000Z","dependencies_parsed_at":null,"dependency_job_id":"e2029da1-3173-4110-aea9-12c709b5bf6c","html_url":"https://github.com/bmemartin/proxmox-cloudinit","commit_stats":null,"previous_names":["bmemartin/proxmox-cloudinit"],"tags_count":null,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bmemartin%2Fproxmox-cloudinit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bmemartin%2Fproxmox-cloudinit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bmemartin%2Fproxmox-cloudinit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bmemartin%2Fproxmox-cloudinit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bmemartin","download_url":"https://codeload.github.com/bmemartin/proxmox-cloudinit/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247208022,"owners_count":20901568,"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","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":["cloudinit","homelab","proxmox"],"created_at":"2025-02-10T01:39:09.740Z","updated_at":"2025-04-04T15:44:02.699Z","avatar_url":"https://github.com/bmemartin.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Proxmox Cloud-init\n\nThe [template](template) script assists with the creation of Proxmox templates using cloud-based images.\n\n## ⚙️ Prerequisites\n\n### Configure Storage\n\nCustom cloud-init configuration files must be stored on a storage that supports \"snippets\" and needs to be available on all nodes that the virtual machine may be migrated to. The script uses the `local` storage for storing cloud-init configuration files.\n\nEdit the `local` datacenter storage by **Datacenter** \u003e **Storage** \u003e `local` \u003e **Edit**. Add `Snippets` to the **Content** list, then click **OK**.\n\n### Install the Script\n\nCopy the script onto the Proxmox instance using your preferred method. For example\n\n```shell\nscp template root@IP_ADDRESS:~\n```\n\n\u003e [!TIP]\n\u003e The script should be executable which can be achieved with `chmod +x template`\n\n### Create Cloud-init Configuration\n\nCreate the custom cloud-init configuration file `user-data.yaml` alongside the script. An example of such content is\n\n```yaml\n#cloud-config\n\ntimezone: Australia/Brisbane\n\nusers:\n  - default\n\nuser: # overrides the default user\n  name: proxmox\n  gecos: Proxmox User\n  lock_passwd: false\n  passwd: $6$LMpbedEG$pP1QpD6dzfljkWUwj5l9C8k1\n  ssh_authorized_keys:\n    - ssh-ed25519 AAAACxG/xsUyz7Zut6L6 proxmox\n\nchpasswd:\n  expire: False\n\ndisable_root: true\ndisable_root_opts: ''\n\npackage_update: true\npackage_upgrade: true\npackage_reboot_if_required: true\npackages:\n  - python3\n  - python3-pip\n  - qemu-guest-agent\n\npower_state: # reboot after QEMU guest agent install\n  mode: reboot\n```\n\nRefer to the [cloud-init modules](https://cloudinit.readthedocs.io/en/latest/reference/modules.html) documentation for more information.\n\n## 📝 Create a Template\n\nCreate a new template\n\n```shell\n./template IMAGE_URL\n```\n\n\u003e [!TIP]\n\u003e Additional script options can be reviewed with `./template --help`\n\n## 🚀 Consume a Template\n\nSelect **Clone** on the template. Set the **Mode** as **Full Clone**, a **Name** and **Target Storage**, and then select **Clone**.\n\n\u003e [!WARNING]\n\u003e Resize the hard disk by **Hardware** \u003e **Hard Disk** \u003e **Disk Action** \u003e **Resize**. Set the **Size Increment** as desired, then select **Resize disk**\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbmemartin%2Fproxmox-cloudinit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbmemartin%2Fproxmox-cloudinit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbmemartin%2Fproxmox-cloudinit/lists"}