GitHub user TadiosAbebe added a comment to the discussion: Need advice on 
creating password-enabled Windows templates.

Here is a guide on how i prepare my windows templates

- I download windows server vhd file from microsoft's website.(personal 
preference, instead of installing it from ISO)
- I convert the vhd file to qcow2 using qemu-img utility
```
qemu-img convert -p -f vpc -O qcow2 windows_server_2019.vhd 
windows_server_2019.qcow2
```
- Upload the qcow2 file to cloudstack
- Launch an instance from the uploaded template and make some customizations
- install virtio drivers and qemu-guest-agent
- enable remote desktop
- update the system
- Install cloudbase-init, and at the last steps of syspreping and sutting down 
the system before continuing
- I edit the contents of C:\Program Files\Cloudbase 
Solutions\Cloudbase-Init\conf\cloudbase-init.conf
```
[DEFAULT]
username=Administrator
groups=Administrators
inject_user_password=true
first_logon_behaviour=no
rdp_set_keepalive=true
bsdtar_path=C:\Program Files\Cloudbase Solutions\Cloudbase-Init\bin\bsdtar.exe
mtools_path=C:\Program Files\Cloudbase Solutions\Cloudbase-Init\bin\
verbose=true
debug=true
log_dir=C:\Program Files\Cloudbase Solutions\Cloudbase-Init\log\
log_file=cloudbase-init-unattend.log
default_log_levels=comtypes=INFO,suds=INFO,iso8601=WARN,requests=WARN
logging_serial_port_settings=COM1,115200,N,8
mtu_use_dhcp_config=true
ntp_use_dhcp_config=true
local_scripts_path=C:\Program Files\Cloudbase 
Solutions\Cloudbase-Init\LocalScripts\
allow_reboot=false
check_latest_version=false
stop_service_on_exit=false
netbios_host_name_compatibility=true
metadata_services=cloudbaseinit.metadata.services.cloudstack.CloudStack,cloudbaseinit.metadata.services.configdrive.ConfigDriveService
plugins = 
cloudbaseinit.plugins.common.mtu.MTUPlugin,cloudbaseinit.plugins.windows.ntpclient.NTPClientPlugin,cloudbaseinit.plugins.common.sethostname.SetHostNamePlugin,cloudbaseinit.plugins.windows.createuser.CreateUserPlugin,cloudbaseinit.plugins.common.networkconfig.NetworkConfigPlugin,cloudbaseinit.plugins.windows.licensing.WindowsLicensingPlugin,cloudbaseinit.plugins.common.sshpublickeys.SetUserSSHPublicKeysPlugin,cloudbaseinit.plugins.windows.extendvolumes.ExtendVolumesPlugin,cloudbaseinit.plugins.common.userdata.UserDataPlugin,cloudbaseinit.plugins.common.setuserpassword.SetUserPasswordPlugin,cloudbaseinit.plugins.windows.winrmlistener.ConfigWinRMListenerPlugin,cloudbaseinit.plugins.windows.winrmcertificateauth.ConfigWinRMCertificateAuthPlugin,cloudbaseinit.plugins.common.localscripts.LocalScriptsPlugin
[cloudstack]
metadata_base_url=http://192.168.1.1/
```
- you might need to change the metadata_base_url value
- then i edit the contents of C:\Program Files\Cloudbase 
Solutions\Cloudbase-Init\conf\cloudbase-init-unattend.conf
```
[DEFAULT]
username=Administrator
groups=Administrators
inject_user_password=true
first_logon_behaviour=no
rdp_set_keepalive=true
bsdtar_path=C:\Program Files\Cloudbase Solutions\Cloudbase-Init\bin\bsdtar.exe
mtools_path=C:\Program Files\Cloudbase Solutions\Cloudbase-Init\bin\
verbose=true
debug=true
log_dir=C:\Program Files\Cloudbase Solutions\Cloudbase-Init\log\
log_file=cloudbase-init-unattend.log
default_log_levels=comtypes=INFO,suds=INFO,iso8601=WARN,requests=WARN
logging_serial_port_settings=COM1,115200,N,8
mtu_use_dhcp_config=true
ntp_use_dhcp_config=true
local_scripts_path=C:\Program Files\Cloudbase 
Solutions\Cloudbase-Init\LocalScripts\
allow_reboot=false
check_latest_version=false
stop_service_on_exit=false
netbios_host_name_compatibility=true
metadata_services=cloudbaseinit.metadata.services.cloudstack.CloudStack,cloudbaseinit.metadata.services.configdrive.ConfigDriveService
plugins = 
cloudbaseinit.plugins.common.mtu.MTUPlugin,cloudbaseinit.plugins.common.sethostname.SetHostNamePlugin
[cloudstack]
metadata_base_url=http://192.168.1.1/
```
- then I complete the cloudbase-init installation by syspreping and shutting 
down
- then I convert the instance root volume to template.

If password injection is not working or any cloudbase-init issue in general it 
is help full to detach the root volume of the not working instance and try to 
look for why cloudbase-init failed with in the logs

GitHub link: 
https://github.com/apache/cloudstack/discussions/11792#discussioncomment-14608334

----
This is an automatically sent email for [email protected].
To unsubscribe, please send an email to: [email protected]

Reply via email to