Features
- Supports HTTP and ConfigDriveV2 metadata sources
- Provides out the box: user creation, password injection, static networking configuration, hostname, SSH public keys, and userdata scripts (Powershell, Cmd, or Bash)
- It’s highly modular and can be easily extended to support many features and metadata sources.
- Works on any hypervisor (Hyper-V, KVM, Xen, etc)
- It’s platform-independent, meaning that we plan to add other OSes, e.g.: FreeBSD
- Written in Python
- Open source, Apache 2 licensed
Supported Services
OpenStack Amazon EC2 Microsoft Azure Oracle Cloud VMware vSphere OpenNebula Ubuntu MAAS KubeVirt Bare metal
Supported Windows Versions
Windows Server 2025 Windows Server 2022 Windows Server 2019 Windows Server 2016 Windows Server 2012 R2 Windows Client 11, 10, 8.1, 8
Overview
Cloudbase-Init is the Windows equivalent of Cloud-Init: an open-source project that brings together all the features handled on Linux, to Windows!
Cloud-Init is the OpenStack automated initialization of a new instance which is a task that needs to be split between the cloud infrastructure and the guest OS. OpenStack™ provides the required metadata via HTTP or via ConfigDrive and Cloud-Init takes care of configuring the instance on Linux.
However, what would happen if you needed to do the same thing, but on Windows® guests?
Cloudbase-Init™ is the Windows equivalent of the Cloud-Init project used on most OpenStack Linux images. When deployed as a service on Windows, Cloudbase-Init takes care of all the guest initialization actions: disk volume expansion, user creation, password generation, custom PowerShell, CMD and Bash scripts execution, Heat templates, PowerShell remoting setup, and much more.

Download
Register and receive information on Cloudbase Solutions products, services and the latest updates:
Stable
Continuous Builds (Beta)
Installation
The installer takes care of everything, including installing a dedicated Python environment, generating a configuration file and creating a Windows service that runs at boot time. Configuration settings like the username, group membership and the network adapter to be configured can be specified during setup or later by editing the configuration file (cloudbase-init.conf).
Unattended setup
The setup can be done in silent mode as well, which means that it can be easily integrated in a Puppet, Chef or Windows GPO deployment strategy.
Here’s the basic syntax, with an additional optional log file to verify that everything worked fine:
1 |
msiexec /i CloudbaseInitSetup.msi /qn /l*v log.txt |
You can also pass parameters, for example to specify the serial port to be used for logging:
1 |
msiexec /i CloudbaseInitSetup.msi /qn /l*v log.txt LOGGINGSERIALPORTNAME="COM1" |
Links
Source: https://github.com/stackforge/cloudbase-init
Documentation: http://cloudbase-init.readthedocs.org/en/latest/
Got a question? Visit http://ask.cloudbase.it/questions/