Salt Cloud 0.8.6 Release Notes¶

Welcome to 0.8.6! This is an exciting release, especially for EC2 users. To see what new features are available, read on.

Documentation¶ The documentation for Salt Cloud can be found on Read the Docs: http://salt-cloud.readthedocs.org

Download¶ Salt Cloud can be downloaded and install via pypi: http://pypi.python.org/packages/source/s/salt-cloud/salt-cloud-0.8.6.tar.gz Some packages have been made available for salt-cloud and more on on their way. Packages for Arch and FreeBSD are being made available thanks to the work of Christer Edwards, and packages for RHEL and Fedora are being created by Clint Savage. The Ubuntu PPA is being managed by Sean Channel. Package availability will be announced on the salt mailing list.

Salt Outputter¶ Previously, output from Salt Cloud was a mix of log output and print statements, while the Salt outputter system has grown into a beautiful, configurable tool. This release of Salt Cloud now takes advantage of the Salt outputter system, making the output from the salt-cloud command much more beautiful, easy to read, and usable from other scripts.

Experimental EC2 Driver¶ A new driver has been introduced for Amazon EC2, to potentially replace the existing AWS driver. This driver contains several optimizations which have been found to greatly improve instance creation and deployment. They also allow for extra functionality to be added, which is not currently available in the AWS driver. However, it should be noted that the EC2 driver is currently considered to be experiemental. While existing AWS usage should not currently differ, it should be expected to change between versions until it is declared stable. Many of the features of this release are specific to the EC2 driver. Please check the AWS documentation for configuration and usage of the EC2 driver.

AWS/EC2 Rename on Destroy¶ When instances on AWS are destroyed, there will be a lag between the time that the action is sent, and the time that Amazon cleans up the instance. During this time, the instance still retails a Name tag, which will cause a collision if the creation of an instance with the same name is attempted before the cleanup occurs. In order to avoid such collisions, Salt Cloud can be configured to rename instances when they are destroyed. The new name will look something like: myinstance-DEL20f5b8ad4eb64ed88f2c428df80a1a0c In order to enable this, add AWS.rename_on_destroy line to the main configuration file: AWS.rename_on_destroy : True

New Action: show_instance¶ This action is a thin wrapper around –full-query, which displays details on a single instance only. In an environment with several machines, this will save a user from having to sort through all instance data, just to examine a single instance. $ salt-cloud -a show_instance myinstance

Actions vs Functions¶ Salt Cloud 0.8.3 introduced the concept of provider-specific actions. However, these actions were designed to operate on specific instances within a provider. In order to perform calls on a provider, but not on specific instances, functions have been added. Currently, only EC2 takes advantage of these.

New Function: show_image¶ This is a function that describes an AMI on EC2. This will give insight as to the defaults that will be applied to an instance using a particular AMI. $ salt-cloud -f show_image ec2 image = ami-fd20ad94

EC2: delvol_on_destroy¶ This argument overrides the default DeleteOnTermination setting in the AMI for the root EBS volume for an instance. Many AMIs contain ‘false’ as a default, resulting in orphaned volumes in the EC2 account, which may unknowingly be charged to the account. This setting can be added to the profile or map file for an instance. delvol_on_destroy : True This can also be set as a global setting in the EC2 cloud configuration: EC2.delvol_on_destroy : True The setting for this may be changed on an existing instance using one of the following commands: salt-cloud -a delvol_on_destroy myinstance salt-cloud -a keepvol_on_destroy myinstance

EC2 Termination Protection¶ AWS allows the user to enable and disable termination protection on a specific instance. An instance with this protection enabled cannot be destroyed. The EC2 driver adds a show_term_protect action to the regular AWS functionality. salt-cloud -a show_term_protect mymachine salt-cloud -a enable_term_protect mymachine salt-cloud -a disable_term_protect mymachine

EC2 Alternate Endpoint¶ Normally, ec2 endpoints are build using the region and the service_url. The resulting endpoint would follow this pattern: ec2.<region>.<service_url> This results in an endpoint that looks like: ec2.us-east-1.amazonaws.com There are other projects that support an EC2 compatibility layer, which this scheme does not account for. This can be overridden by specifying the endpoint directly in the main cloud configuration file: EC2.endpoint : myendpoint.example.com:1138/services/Cloud

EC2 Volume Management¶ The EC2 driver has several functions and actions for management of EBS volumes. Creating Volumes¶ A volume may be created, independent of an instance. A zone must be specified. A size or a snapshot may be specified (in GiB). If neither is given, a default size of 10 GiB will be used. If a snapshot is given, the size of the snapshot will be used. salt-cloud -f create_volume ec2 zone = us-east-1b salt-cloud -f create_volume ec2 zone = us-east-1b size = 10 salt-cloud -f create_volume ec2 zone = us-east-1b snapshot = snap12345678 Attaching Volumes¶ Unattached volumes may be attached to an instance. The following values are required: name or instance_id, volume_id and device. salt-cloud -a attach_volume myinstance volume_id = vol-12345 device = /dev/sdb1 Show a Volume¶ The details about an existing volume may be retreived. salt-cloud -a show_volume myinstance volume_id = vol-12345 salt-cloud -f show_volume ec2 volume_id = vol-12345 Detaching Volumes¶ An existing volume may be detached from an instance. salt-cloud -a detach_volume myinstance volume_id = vol-12345 Deleting Volumes¶ A volume that is not attached to an instance may be deleted. salt-cloud -f delete_volume ec2 volume_id = vol-12345