Skip to content

Commit edd1659

Browse files
author
William Lam
committed
Install script for Cloudbase-init for Windows
1 parent 49efad5 commit edd1659

File tree

1 file changed

+87
-0
lines changed

1 file changed

+87
-0
lines changed
Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
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

Comments
 (0)