salt/doc/topics/cloud/releases/0.8.6.rst
Adam Chainz 64d9a62f89 Convert readthedocs links for their .org -> .io migration for hosted projects
As per [their blog post of the 27th April](https://blog.readthedocs.com/securing-subdomains/) ‘Securing subdomains’:

> Starting today, Read the Docs will start hosting projects from subdomains on the domain readthedocs.io, instead of on readthedocs.org. This change addresses some security concerns around site cookies while hosting user generated data on the same domain as our dashboard.

Test Plan: Manually visited all the links I’ve modified.
2016-06-11 12:33:37 +01:00

264 lines
7.9 KiB
ReStructuredText

==============================
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:
https://salt-cloud.readthedocs.io
Download
========
Salt Cloud can be downloaded and install via pypi:
https://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.
Updated libcloud
================
This version of Salt Cloud now depends upon libcloud version 0.12.1. Be sure to
update your packages accordingly.
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:
.. code-block:: bash
myinstance-DEL20f5b8ad4eb64ed88f2c428df80a1a0c
In order to enable this, add AWS.rename_on_destroy line to the main
configuration file:
.. code-block:: yaml
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.
.. code-block:: bash
$ 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.
.. code-block:: bash
$ 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.
.. code-block:: yaml
delvol_on_destroy: True
This can also be set as a global setting in the EC2 cloud configuration:
.. code-block:: yaml
EC2.delvol_on_destroy: True
The setting for this may be changed on an existing instance using one of the
following commands:
.. code-block:: bash
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.
.. code-block:: bash
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:
.. code-block:: yaml
ec2.<region>.<service_url>
This results in an endpoint that looks like:
.. code-block:: yaml
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:
.. code-block:: yaml
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.
.. code-block:: bash
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.
.. code-block:: bash
salt-cloud -a attach_volume myinstance volume_id=vol-12345 device=/dev/sdb1
Show a Volume
-------------
The details about an existing volume may be retrieved.
.. code-block:: bash
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.
.. code-block:: bash
salt-cloud -a detach_volume myinstance volume_id=vol-12345
Deleting Volumes
----------------
A volume that is not attached to an instance may be deleted.
.. code-block:: bash
salt-cloud -f delete_volume ec2 volume_id=vol-12345
Managing Key Pairs on EC2
=========================
The EC2 driver has the ability to manage key pairs.
Creating a Key Pair
-------------------
A key pair is required in order to create an instance. When creating a key pair
with this function, the return data will contain a copy of the private key.
This private key is not stored by Amazon, and will not be obtainable past this
point, and should be stored immediately.
.. code-block:: bash
salt-cloud -f create_keypair ec2 keyname=mykeypair
Show a Key Pair
---------------
This function will show the details related to a key pair, not including the
private key itself (which is not stored by Amazon).
.. code-block:: bash
salt-cloud -f delete_keypair ec2 keyname=mykeypair
Delete a Key Pair
-----------------
This function removes the key pair from Amazon.
.. code-block:: bash
salt-cloud -f delete_keypair ec2 keyname=mykeypair