diff --git a/README.md b/README.md index 094e6e1..88304dc 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ # Geco-cloudbase-init -This is a Proxmox patch that allows us to use Cloudbase-init with windows hosts. +This is an implementation of Cloudbase-Init to Windows virtual machines running in a Proxmox Node in order to use cloud-init with those vms. -What can you do with this patch? +What can you do with this implementation? 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. @@ -18,11 +18,36 @@ 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. +## Proxmox Patch + +We have provided patch file for two different versions, if you are on those versions you can simply download it and apply the patch by doing; +``` +# Check the version of your qemu-server +apt show qemu-server |grep "Version" + +# If your version is 6.4-2 or 7.1-4 download the corresponding patch from this repo and continue, if not continue manual patching below. + +# Launch below as a test to see if you can apply the patch file, change path to where you downloaded the files and run this for two .patch files. +patch --force --forward --backup -p0 --directory / --input "/absolute/path/to/patchfile.pm.patch" --dry-run && echo "You can apply patch" || { echo "Can't apply patch!";} + +# If the result is "Can't apply patch!", you can type "apt reinstall qemu-server" to reinstall the qemu-server files(If you have made changes to qemu-server source files they will be lost!) + +# Apply the patch if the result is "You can apply patch" +patch --force --forward --backup -p0 --directory / --input "/absolute/path/to/patchfile.pm.patch" + +``` + +If you want to revert the patch: +`patch --force --reverse --backup -p0 --directory / --input "/absolute/path/to/patchfile.pm.patch"` + + 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](https://git.geco-it.net/c.soylu/Geco-cloudbase-init/src/branch/master/localscripts) 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. +## Cloudbase-Init LocalScripts +We have [two scripts](https://git.geco-it.net/c.soylu/Geco-cloudbase-init/src/branch/master/localscripts) that do some fonctionality that Cloudbase-Init doesnt have; +* Enabling administrator user when it's name is given to the Cloudbase-Init +* Enabling DHCP on the network adapters +Move those scripts into Cloudbase Solutions\Cloudbase-Init\LocalScripts\ in your program files of your Windows VM. ## Powershell Script [This](https://git.geco-it.net/c.soylu/Geco-cloudbase-init/src/branch/master/powershell) powershell script has a few uses. @@ -30,9 +55,9 @@ You need to move those scripts into Cloudbase Solutions\Cloudbase-Init\LocalScri * 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. +Run this script after installing Cloudbase-Init Continous Build. We need continous build because the stable build dates from 2020 and doesnt include functionalities we use. -When everythin is installed simply run below in powershell to launch sysprep: +When everything 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