Cloud-init in Nutanix Database Service (NDB): Fast, Simple, Future-Ready Provisionin

By Anand Chandak, Principal Product Manager, Nutanix
Sandeep Sudheendra, Staff Engineer, Nutanix

Provisioning database VMs at scale has traditionally required extensive manual configuration or custom scripting. Teams can spend hours configuring network parameters, managing SSH keys, setting up user accounts, and initializing services across dozens or hundreds of VMs. Each deployment demands careful coordination of post-boot scripts, increasing complexity and introducing opportunities for configuration drift. For organizations managing multiple database environments, this manual overhead compounds quickly—turning what should be routine provisioning into a time-intensive, error-prone process.

The Nutanix Database Service (NDB) solution now offers an optional enhancement with cloud-init support, industry-standard VM initialization technology used across modern cloud platforms. By enabling cloud-init on your database server VMs, you can achieve standardized, automated VM configuration, enabling faster deployments and stronger alignment with cloud-native practices.

What is Cloud-init?

Cloud-init is a standard mechanism used by major public and private cloud providers to configure Linux virtual machines during first boot. It interprets a declarative YAML specification to apply system-level configurations — network parameters, SSH access, user accounts, and service initialization — without requiring post-deployment scripts or manual setup.

By adopting cloud-init, NDB aligns its provisioning model with modern cloud-native infrastructure.  Cloud-init enables every database VM provisioned through NDB to be initialized consistently, using the same mechanism trusted by leading cloud platforms.

How NDB Uses Cloud-init

Without cloud-init, platforms often rely on image-based workflows where a disk is cloned from a preconfigured operating system snapshot, attached to a control-plane VM, mounted, and then programmatically modified. During this stage, configuration artifacts are injected, identifiers are sanitized, and the image is brought to a boot-ready state before the disk is detached and used as the basis for new VM instances. This pattern is robust and familiar, but it introduces extra processing time and operational overhead due to the cloning, mounting, and image-preparation steps—especially when provisioning at larger scale.

With cloud-init enabled, NDB  transforms this process. During provisioning, NDB automatically generates a cloud-init configuration file during database provisioning. This configuration includes all relevant parameters — networking, user credentials, and service-specific settings — and is securely passed to the guest operating system as part of the VM creation process.

During first boot, cloud-init applies these configurations in parallel instantly, enabling each database VM to be provisioned with the exact specifications defined by NDB policies. The result is fast initialization, consistent configuration, and a clear separation between VM setup and database engine deployment — enabling reproducibility at scale.

As shown in Figure 1, the process is straightforward: NDB creates the configuration, cloud-init applies it, and your database VM is ready with all the necessary settings in place—no manual intervention required.

graphic to represent Database VM provisioning with Cloud-init

Figure 1: Database VM provisioning with Cloud-init

Benefits of using Cloud-init in NDB

1. Fast Database Provisioning

Our enhancement of NDB with optional Cloud-init support is designed to help customers  deploy  large-scale database environments faster. In internal Nutanix testing (Fig. 2) during development, a 43-VM MongoDB cluster provisioned in 52 minutes with Cloud-init compared to 135 minutes without—saving 83 minutes per deployment. Individual VMs were provisioned in 1 minute 10 seconds instead of 3 minutes. These preliminary test results were based on a standard NDB workflow with MongoDB on the Nutanix AHV hypervisor. Actual performance in customer environments will vary based on, e.g., infrastructure configuration and other use case particulars.

For teams managing multiple database environments, use of the Cloud.init enhancement has the potential to significantly speed delivery of database services to application teams.

graphic to represent Cloud-init provisioning test performance across 43 VMs

Figure 2: Cloud-init provisioning test performance across 43 VMs

2. Benefit from Enhanced Provisioning Flexibility

Cloud-init's declarative approach provides a modern foundation for VM initialization, handling network configuration, user setup, and service parameters automatically at first boot. This architecture enables flexible, declarative VM configuration that adapts to different deployment environments.

3. Manage Configuration as Code

Cloud-init defines VM initialization through declarative YAML files, for consistent, auditable configuration across environments. In NDB, these definitions are generated automatically during provisioning, establishing a single source of truth for every VM.

While users don’t author the YAML directly today, this model enables Config-as-Code workflows — where initialization logic can be version-controlled, reviewed, and reused — bringing database provisioning closer to the same governance discipline applied to application code.

4. Deliver Hybrid Cloud Consistency with Cloud-init

Cloud-init is a standard VM initialization framework used across the industry.

By adopting it, NDB aligns its provisioning model with cloud-native automation standards, for consistency across on-premises, hybrid, and public cloud environments.

This alignment allows NDB provisioning to follow cloud-native conventions, making database deployments fast to configure, easy to troubleshoot, and simple to operate across different infrastructure.

Getting Started with Cloud-init

Currently, cloud-init acceleration is an optional feature that requires one-time setup on your database server VMs (gold images) before registration with NDB.

Quick Setup Steps:

  1. Log in to your Database Server VM with root-level access
  2. Install cloud-init using your OS package manager:
    • sudo yum install cloud-init # Oracle Linux, RHEL
    • sudo dnf install cloud-init # Rocky Linux
  3. Enable cloud-init services:
    • sudo systemctl enable cloud-init-local.service cloud-init.service cloud-config.service cloud-final.service
  4. Once cloud-init is installed and enabled on your gold image VM, any software profiles created from that VM will automatically benefit from cloud-init acceleration during database provisioning. Existing profiles without cloud-init continue to work unchanged—you can adopt cloud-init incrementally as you update your gold images.

For detailed installation steps, OS-specific requirements, and supported versions, see KB-19302 in the NDB Knowledge Base.

Conclusion

By integrating cloud-init, Nutanix Database Service brings cloud-grade automation and industry-standard VM initialization to database environments—whether on-premises, public clouds, or in hybrid deployments. This enhancement represents a step toward unifying database provisioning models across clouds, streamlining deployment workflows, and simplifying operations for platform teams.

The result: rapid delivery of database services, consistent configuration across environments, and streamlined operations—all using the same proven technology trusted by leading cloud platforms worldwide.

Experience NDB with cloud-init acceleration - Try our FREE hands-on Test Drive to explore simplified, automated database lifecycle management in action.

©2025 Nutanix, Inc. All rights reserved. Nutanix, the Nutanix logo and all Nutanix product and service names mentioned are registered trademarks or trademarks of Nutanix, Inc. in the United States and other countries. All other brand names mentioned are for identification purposes only and may be the trademarks of their respective holder(s). This content reflects an experiment in a test environment. Results, benefits, savings, or other outcomes described depend on a variety of factors including use case, individual requirements, and operating environments, and this publication should not be construed as a promise or obligation to deliver specific outcomes.