{"id":14069809,"url":"https://github.com/clayshek/ans-pve-win-provision","last_synced_at":"2025-04-08T22:32:11.235Z","repository":{"id":114754908,"uuid":"279442645","full_name":"clayshek/ans-pve-win-provision","owner":"clayshek","description":"Use Ansible to provision new Proxmox Windows VMs from template","archived":false,"fork":false,"pushed_at":"2020-07-14T00:44:22.000Z","size":14,"stargazers_count":5,"open_issues_count":0,"forks_count":3,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-03-23T19:12:32.916Z","etag":null,"topics":["ansible","homelab","provisioning","proxmox","windows"],"latest_commit_sha":null,"homepage":"","language":"Smarty","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/clayshek.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2020-07-14T00:38:06.000Z","updated_at":"2024-04-30T16:44:44.000Z","dependencies_parsed_at":null,"dependency_job_id":"1451d531-5e94-438f-bb37-069945b93dd1","html_url":"https://github.com/clayshek/ans-pve-win-provision","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clayshek%2Fans-pve-win-provision","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clayshek%2Fans-pve-win-provision/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clayshek%2Fans-pve-win-provision/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clayshek%2Fans-pve-win-provision/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/clayshek","download_url":"https://codeload.github.com/clayshek/ans-pve-win-provision/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247940676,"owners_count":21022022,"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":["ansible","homelab","provisioning","proxmox","windows"],"created_at":"2024-08-13T07:07:15.155Z","updated_at":"2025-04-08T22:32:06.218Z","avatar_url":"https://github.com/clayshek.png","language":"Smarty","funding_links":[],"categories":["Smarty"],"sub_categories":[],"readme":"# ans-pve-win-provision\r\n\r\n## Summary\r\n\r\nAnsible playbook to provision new Windows VM(s), cloned off of an existing template on a [Proxmox](https://www.proxmox.com/en/proxmox-ve) hypervisor. Mostly custom to my lab environment, but easy enough to modify.\r\n\r\nAs exists currently in this repo, will create the following new VMs in Proxmox:\r\n- DC01 \u0026 DC02 (base VMs for Active Directory Domain Controllers)\r\n- SCVMM01 (base VM for System Center Virtual Machine Manager)\r\n- WAC01 (base VM for Windows Admin Center)\r\n- HVH01, HVH02, HVH03, HVH04 (base VMs for Hyper-V Hypervisor nodes, requires Proxmox nested virtualization)\r\n\r\nThis allows for per-VM customization of parameters such as name, IP, CPU, RAM, admin password, and adding an additional data drive. \r\n\r\nEnd result will be running VM(s) based off of specified template, which are ready to be further customized (domain join, role/feature and application installation) - see https://github.com/clayshek/ansible-lab-config\r\n\r\n## Usage \u0026 Requirements\r\n\r\n- Requires a Windows template to already exist (see https://github.com/clayshek/ans-pve-win-templ)\r\n- Modify inventory.yml if necessary. Any new hosts will need to have a hostname.yml variables file created in host_vars/\r\n- Modify variables in group_vars and host_vars as necessary. Consider [Ansible Vault](https://docs.ansible.com/ansible/latest/user_guide/vault.html) for passwords / sensitive variables.\r\n- Fail / Retry logic added to account for per-node file locks, and is expected (see To-Do section)\r\n\r\n`ansible-playbook -i inventory.yml --ask-vault-pass provision-base-vms.yml`\r\n\r\n- Or to limit to a specific host or host group:\r\n\r\n`ansible-playbook -i inventory.yml -l [HOST|HOSTGROUP] --ask-vault-pass provision-base-vms.yml`\r\n\r\nOnce VM / OS provisioning complete, detach and delete the ISO created with the unattend.xml file (this will have cleartext administrator credentials).\r\n\r\n## To-Do\r\n\r\n - [ ] Add functionality to detach CDROM from VM and delete unattend ISO when provisioning complete\r\n - [ ] Possibly change VM creation to run serially as opposed to parallel to prevent file locks\r\n\r\n## Disclaimer\r\n\r\nPrimary purpose is to quickly provision base VMs for a Windows infrastructure lab environment on top of Proxmox. Security best practices not always a top priority. ","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fclayshek%2Fans-pve-win-provision","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fclayshek%2Fans-pve-win-provision","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fclayshek%2Fans-pve-win-provision/lists"}