We're excited to announce the initial release of the knife-softlayer Ruby gem.
Knife-softlayer is a plugin for the knife utility used with Chef that allows users to launch a SoftLayer virtual server and bootstrap it in a single command. If you're new to Chef, here's a guide to get you started.
user@local> knife softlayer server create --hostname web --domain example.com --flavor medium
This is a basic example using every available default, but it works. It will launch a virtual server and register it as a Chef node (though it won't have a run list). The idea behind pushing your infrastructure into the cloud is that, ideally, you don't have to think about details that don't matter to you. We've worked hard to get the number of options you're required to supply (decisions you need to make) as low as possible, while still giving you full control over every single detail if you need it.
Unlike some other clouds, we don't take away your choices; however, we don't force you to choose if you don't want to think about it. We can't imagine why you would ever need a virtual server with 16 CPU cores and only 1GB of memory. But if that's what you need, with SoftLayer, you can do it.
This second example again launches an instance, this time specifying the number of cores, the NIC speed, the number and size of block devices, and also tells Chef to run a set of cookbooks on the instance. The virtual server is coming up with 1 core, 64GB of RAM, and 100GB of block device storage (disk space) on device 0. We're also installing git and redis on it.
user@local> knife softlayer server create -H some-host -D example.com \\ --network-interface-speed 1000 \\ --cores 1 \\ --ram 65536 \\ --block-storage 0:100 \\ --run-list 'recipe[git],recipe[redis]'
The knife-softlayer plugin will take any options that the regular bootstrap command supports, we've also added some additional options to support launching a SoftLayer virtual server.
-H,--hostname The hostname of the virtual server.-D,--domain The domain of the virtual server.-C, --cores will accept values from 1 - 16.-R, --ram will accept values [in MB] from the following list:
1024,2048,4096,6144,8192,12288,16384,32768,49152,65536-B, --block-storage The size in GB of the block storage devices (disks) for this instance.
knife softlayer flavor list --all for a list of available sizes.Mix and match the above as you like!
-f, --flavor Choose from a list of tiny, small, medium, large, xlarge and you can skip the three options above. Alternatively, choose a flavor that gets two of these right, and override the one you want to change by specifying only that flag. user@local> knife softlayer server create --hostname web --domain example.com --flavor medium --cores 8
Check out knife softlayer flavor list for details on what each of these flavors will give you.
-n,--network-interface-speed in MB. See knife softlayer flavor list --all for available speeds.-O,--os-code Defaults to UBUNTU_LATEST. See knife softlayer flavor list --all for available OS images.--new-global-ip Provision a new Global IP address on your SoftLayer account and route it to the virtual server being created.--assign-global-ip Pass an existing Global IP address to this option to route it to the virtual server being created.--single-tenant Create a virtual server that has a private node, which means a dedicated physical host (get rid of those noisy neighbors).--san-storage Don't bother with any local disks, use the SAN, instead of local storage, for the virtual servers instance storage.See knife softlayer server create --help for the full list of awesome things.
Combining the power of Chef with the flexibility of the SoftLayer API in a single utility brings a whole new level of fun to automating things in the SoftLayer cloud. Let us know what awesome things you're doing! We're on Twitter @softlayer.
-- Matt
If you have questions about or problems with knife-softlayer open an issue or email me