Update: Also check out a free 30-day trial of SmartCloud Provisioning available now: http://ibm.co/x3YAoc.
In a previous article, I described how to use IBM SmartCloud Provisioning 1.2 to pass parameters at deployment time — parameters that can retrieved and processed later by a proper application that has to be installed in the image.
Now I want to share with you a simple but effective capability, also available in IBM SmartCloud Provisioning 2.1, for automatically configuring an image at deployment time without requiring any change to the image itself.
When you deploy a single virtual image or a pattern using an image that is created by using IBM Construction and Composition Tool (ICCT) 1.2, you can pass a script in the “user-data” text box, and the script will automatically be executed without requiring any change in the image.
By using this approach, you can apply simple configurations to the image or for example install Linux RPM files that are available in a common repository.
The following figure shows the deployment panel that describes how to pass some shell commands:
This capability is achieved by exploiting the scp-cloud-init component that is added automatically when an image is extented by using ICCT 1.2, because it is included in the ICCT enablement bundles.
The scp-cloud-init component retrieves the script that is processing the user-data file and adds the script at the end of the boot process (/etc/rc.local) so that it is automatically executed when the image activation is completed.
The scp-cloud-init component is inspired by the Amazon EC2 instance metadata; you can find an interesting article about it at the following address: http://alestic.com/2009/06/ec2-user-data-scripts.
For more information about user-data capabilities and examples, see the Ubuntu cloud-init component description at https://help.ubuntu.com/community/CloudInit.
For further information about IBM SmartCloud Provisioning and the Image Construction and Composition Tool, see IBM SmartCloud Provisioning Information Center.
Share this post: