Using cloud-init scripts with the Jetstream API

Cloud-init is the package that handles early initialization of a cloud instance. Cloud-init allows you to customize an instance at boot using a user-data script. This allows you to override vendor-data scripts like the forced update on initial boot, add software, add git repositories, add users, and many other actions.

To use a cloud-init script on the command line, you add 

--user-data ~/scriptname

to the openstack server create command.

When doing a cloud-init script, it's crucial to start it with #cloud-config so the interpreter knows that it's not just a standard shell script.

There are a number of examples of cloud-init scripts here: http://cloudinit.readthedocs.io/en/latest/topics/examples.html

The script below should only be used by advanced users. It prevents the installation of qemu-guest-agent (a package that is REQUIRED for proper operation on Jetstream – please insure it is installed on your image if you opt to use this script or any script that prevents it being installed by vendor-data). It also prevents the forced update of packages on instantiation. It is a recommended security practice to keep instances up to date with the latest operating system updates. However, if you need to ensure consistent, fast boot times, you may wish to use it. 

Please do apply all critical security patches to your instances. Failure to do so may allow your instances to be compromised. If they are compromised, they will be locked and/or deleted by Jetstream staff.

#cloud-config
packages: []

package_update: false
package_upgrade: false
package_reboot_if_required: false

final_message: "Boot completed in $UPTIME seconds"