Tutorials Vm Cloudinit

This Platform9 OpenStack tutorial describes tips on using various options to customize a virtual machine using cloud-init.

Customize Virtual Machine Hostname

Virtual machines deployed using cloud-init enabled images will by default be configured with hostname created using the name given to the virtual machine, and a randomization suffix.

Set Default Password and Inject Custom Script Using User Data

Create a text file with following information.

#cloud-config
password: winterwonderland
chpasswd: { expire: False }
ssh_pwauth: True
runcmd:
  - [ 'sh', '-c', 'echo "Hello World from PF9" > /tmp/pf9.txt']

Paste the configuration above to the cloud-init config text area:

where:

circle-exclamation
circle-exclamation
circle-check

The output should be a Python dict string representation of the above YAML file.

  • 'winterwonderland' is the desired default password you wish to set for this virtual machine

  • 'runcmd' is a list of commands you would like to inject into this virtual machine. Each element can be a string or another list (like execev). Following article offers comprehensive details: Cloud-Init: Run commands on first bootarrow-up-right.

Finally, invoke Nova command via CLI or REST API to create a new instance, passing the extra parameters for customization.

Inject SSH Key-Pair into Virtual Machine

  • First, generate a new ssh key pair to be used for the new virtual machine:

  • Now add the key pair to Nova:

  • List key pairs registered with Nova:

  • Now with nova boot command you can optionally pass the key-name as the argument:

  • That's it. Once the virtual machine instance is active, you can ssh into the instance using the private key.

Example cloud-config File with Comments

circle-info

Note

Some features only work with cloudinit >= v0.7.5 (Ubuntu 14 or newer, and CentOS 7.x)

Last updated

Was this helpful?