Need a way to quickly get a LAMP stack up and running that's automatically tuned, tweaked and optimized for you? Ever wished there was a way to deploy a Wordpress stack that worked right out of the box? How about an easy way to deploy a cluster of identically configured Linodes?
StackScripts™ provide a flexible way to customize our distribution templates. They're very easy to use — find a StackScript, answer its questions, and click deploy. When the deployment is first booted, the script is executed and does its thing. You can even watch its progress by viewing the console.
StackScripts can be private to your account, shared to the Linode community, or chosen from our library of open source StackScripts. The Linode Manager Users and Grants permission system enables you to restrict who can use or edit your private StackScripts. The Linode API can even manage StackScripts, so management can be rolled into your existing workflow.
A StackScript can be written in any language that the target template distro has an interpreter installed. The only requirement is the script starts with a shebang on the first line.
StackScripts are fully integrated into the Linode Manager. A script can specify User Defined Fields (UDFs) using StackScript Markup Language (SSML) that the Linode Deployment Wizard will prompt the user to populate when performing the deployment. UDF name/value pairs are passed as environment variables when your StackScript is executed.
SSML defines four types of questions: text input, password input, drop-down "combo" boxes, and a list select. Fields have a name and a label, plus optional attributes:
If a default attribute is given to the UDF question, it is considered optional; otherwise, a value must be entered during deployment. If the name contains "password", a password input box is used.
The entire script is parsed for UDFs, so stick them anywhere in the script.
They begin with
<udf and end with
> and contain name/value attributes in-between.
The above SSML would produce the following form on the Linode Deployment Wizard.