1
+ # Installs 64-bit Cloudbase-init on Microsoft Windows system
2
+
3
+ $cloudbaseInitVersion = " 1.1.2"
4
+
5
+ # ## DO NOT EDIT BEYOND HERE ###
6
+
7
+ $cloudbaseInitVersionUnderscore = $cloudbaseInitVersion.replace (" ." , " _" )
8
+ $cloudbaseInitInstallerUri = " https://github.com/cloudbase/cloudbase-init/releases/download/${cloudbaseInitVersion} /CloudbaseInitSetup_${cloudbaseInitVersionUnderscore} _x64.msi"
9
+ $cloudbaseInitInstaller = Split-Path $cloudbaseInitInstallerUri - Leaf
10
+
11
+ $cloudbaseInitInstallPath = " C:\Program Files\Cloudbase Solutions\Cloudbase-Init\conf\"
12
+ $cloudbaseInitConfigFile = " cloudbase-init.conf"
13
+ $cloudbaseInitUnattendConfigFile = " cloudbase-init-unattend.conf"
14
+
15
+ Write-Host " Downloading Cloudbase-Init Installer ..."
16
+ Invoke-WebRequest - Uri $cloudbaseInitInstallerUri - OutFile C:\$cloudbaseInitInstaller
17
+
18
+ Write-Host " Unlocking Cloudbase-Init Installer ..."
19
+ Unblock-File - Path C:\$cloudbaseInitInstaller
20
+
21
+ Write-Host " Installing Cloudbase-Init ..."
22
+ Start-Process msiexec.exe - ArgumentList " /i C:\$cloudbaseInitInstaller /qn /norestart RUN_SERVICE_AS_LOCAL_SYSTEM=1" - Wait
23
+
24
+ Write-Host " Removing the default Cloudbase-Init configuration files ..."
25
+ Remove-Item - Path ($cloudbaseInitInstallPath + $cloudbaseInitConfigFile ) - Confirm:$false
26
+ Remove-Item - Path ($cloudbaseInitInstallPath + $cloudbaseInitUnattendConfigFile ) - Confirm:$false
27
+
28
+ $confContent = @"
29
+ [DEFAULT]
30
+ username=Admin
31
+ groups=Administrators
32
+ inject_user_password=true
33
+ config_drive_raw_hhd=true
34
+ config_drive_cdrom=true
35
+ config_drive_vfat=true
36
+ bsdtar_path=C:\Program Files\Cloudbase Solutions\Cloudbase-Init\bin\bsdtar.exe
37
+ mtools_path=C:\Program Files\Cloudbase Solutions\Cloudbase-Init\bin\
38
+ verbose=true
39
+ debug=true
40
+ logdir=C:\Program Files\Cloudbase Solutions\Cloudbase-Init\log\
41
+ logfile=cloudbase-init.log
42
+ default_log_levels=comtypes=INFO,suds=INFO,iso8601=WARN,requests=WARN
43
+ logging_serial_port_settings=
44
+ mtu_use_dhcp_config=true
45
+ ntp_use_dhcp_config=true
46
+ local_scripts_path=C:\Program Files\Cloudbase Solutions\Cloudbase-Init\LocalScripts\
47
+ check_latest_version=true
48
+ metadata_services=cloudbaseinit.metadata.services.vmwareguestinfoservice.VMwareGuestInfoService
49
+ plugins=cloudbaseinit.plugins.common.ephemeraldisk.EphemeralDiskPlugin,cloudbaseinit.plugins.common.mtu.MTUPlugin,cloudbaseinit.plugins.common.sethostname.SetHostNamePlugin,cloudbaseinit.plugins.common.sshpublickeys.SetUserSSHPublicKeysPlugin,cloudbaseinit.plugins.common.userdata.UserDataPlugin,cloudbaseinit.plugins.common.localscripts.LocalScriptsPlugin,cloudbaseinit.plugins.windows.createuser.CreateUserPlugin
50
+ "@
51
+
52
+ Write-Host " Creating new Cloudbase-Init ${cloudbaseInitConfigFile} File ..."
53
+ New-Item - Path $cloudbaseInitInstallPath - Name $cloudbaseInitConfigFile - ItemType File - Force - Value $confContent | Out-Null
54
+
55
+ $unattendContent = @"
56
+ [DEFAULT]
57
+ username=Admin
58
+ groups=Administrators
59
+ inject_user_password=true
60
+ config_drive_raw_hhd=true
61
+ config_drive_cdrom=true
62
+ config_drive_vfat=true
63
+ bsdtar_path=C:\Program Files\Cloudbase Solutions\Cloudbase-Init\bin\bsdtar.exe
64
+ mtools_path=C:\Program Files\Cloudbase Solutions\Cloudbase-Init\bin\
65
+ verbose=true
66
+ debug=true
67
+ logdir=C:\Program Files\Cloudbase Solutions\Cloudbase-Init\log\
68
+ logfile=cloudbase-init-unattend.log
69
+ default_log_levels=comtypes=INFO,suds=INFO,iso8601=WARN,requests=WARN
70
+ logging_serial_port_settings=
71
+ mtu_use_dhcp_config=true
72
+ ntp_use_dhcp_config=true
73
+ local_scripts_path=C:\Program Files\Cloudbase Solutions\Cloudbase-Init\LocalScripts\
74
+ check_latest_version=false
75
+ metadata_services=cloudbaseinit.metadata.services.vmwareguestinfoservice.VMwareGuestInfoService
76
+ plugins=cloudbaseinit.plugins.common.mtu.MTUPlugin
77
+ allow_reboot=false
78
+ stop_service_on_exit=false
79
+ "@
80
+ Write-Host " Creating new Cloudbase-Init ${cloudbaseInitUnattendConfigFile} File ..."
81
+ New-Item - Path $cloudbaseInitInstallPath - Name $cloudbaseInitUnattendConfigFile - ItemType File - Force - Value $unattendContent | Out-Null
82
+
83
+ Write-Host " Enabling automatic startup for Cloudbase-init ..."
84
+ Get-Service - Name cloudbase- init | Set-Service - StartupType Automatic
85
+
86
+ Write-Host " Cleaning up Cloudbase-Init installer ..."
87
+ Remove-Item C:\$cloudbaseInitInstaller - Confirm:$false
0 commit comments