|
|
# Geco-cloudbase-init
|
|
|
|
|
|
This is a Proxmox patch that allows us to use Cloudbase-init with windows hosts.
|
|
|
|
|
|
What can you do with this patch?
|
|
|
Use Cloudbase-Init with Windows VMs to:
|
|
|
* Create a new user with username or enable administrator.
|
|
|
* Set a password on the new user or administrator.
|
|
|
* Set static ip or dhcp on network adapters.
|
|
|
* Set machine hostname.
|
|
|
* Insert public ssh keys to "user/.ssh/authorized_keys" file of created/enabled user.
|
|
|
* Expand partition volumes automatically when there's a resized disk.
|
|
|
|
|
|
You can do all below on system startup with the data provided by the cloud-init section of the proxmox gui.
|
|
|
|
|
|
|
|
|
There is two files that we need to modify Qemu.pm and Cloudinit.pm.
|
|
|
* Qemu.pm to get password as cleartext in meta_data drive when it is a Windows VM.
|
|
|
* Cloudinit.pm to generate a metadata json file with variables that are compatible with Cloudbase-Init.
|
|
|
|
|
|
If you want to apply the patch manually you can follow these steps: [Manual Patching](https://git.geco-it.net/c.soylu/Geco-cloudbase-init/src/branch/master/MANUALPATCH.md)
|
|
|
|
|
|
## Scripts
|
|
|
We have two scripts that do some fonctionality that we needed; enabling administrator user and enabling dhcp
|
|
|
You need to move those scripts into Cloudbase Solutions\Cloudbase-Init\LocalScripts\ in your program files.
|
|
|
|
|
|
## Powershell Script
|
|
|
This powershell script has a few uses.
|
|
|
* Deletes the "cloudbase-init" user, delegates "cloudbase-init" service to local Systeme user and modifies execution path of the script also to use local system user.
|
|
|
* Installs OpenSSH-Server from optional features of Windows.
|
|
|
* Removes a store language package that causes an error when generelazing for sysprep.
|
|
|
|
|
|
You need to run this script after installing Cloudbase-Init Continous Build. We need continous build to use Username fonctionality of openstack service.
|
|
|
|
|
|
When everythin is installed simply run below in powershell to launch sysprep:
|
|
|
```
|
|
|
cd ‘C:\Program Files\Cloudbase Solutions\Cloudbase-Init\conf’
|
|
|
C:\Windows\System32\sysprep\sysprep.exe /generalize /oobe /unattend:Unattend.xml
|
|
|
|
|
|
```
|
|
|
|