bootstrap-vz/bootstrapvz/providers/ec2
2015-04-12 15:01:06 +02:00
..
assets Move code into proper package folder 2014-04-02 21:26:13 +02:00
tasks Add support for enhanced networking on EC2. 2014-11-29 13:46:57 -08:00
__init__.py Add support for enhanced networking on EC2. 2014-11-29 13:46:57 -08:00
ebsvolume.py Set volume dev_path to None when detaching 2014-04-07 21:52:20 +02:00
manifest-schema-s3.yml Convert every JSON file to YAML 2014-07-09 23:17:04 +02:00
manifest-schema.yml Add support for enhanced networking on EC2. 2014-11-29 13:46:57 -08:00
README.rst Fix some links 2015-04-12 15:01:06 +02:00

EC2
===

The `EC2 <http://aws.amazon.com/ec2/>`__ provider automatically creates
a volume for bootstrapping (be it EBS or S3), makes a snapshot of it
once it is done and registers it as an AMI. EBS volume backing only
works on an EC2 host while S3 backed volumes *should* work locally (at
this time however they do not, a fix is in the works).

Unless `the cloud-init plugin <http://bootstrap-vz.readthedocs.org/en/master/plugins/cloud_init.html>`__
is used, special startup scripts will be installed that automatically fetch the
configured authorized\_key from the instance metadata and save or run
any userdata supplied (if the userdata begins with ``#!`` it will be
run).

Credentials
-----------

The AWS credentials can be configured in two ways: Via the manifest or
through environment variables. To bootstrap S3 backed instances you will
need a user certificate and a private key in addition to the access key
and secret key, which are needed for bootstraping EBS backed instances.

The settings describes below should be placed in the ``credentials`` key
under the ``provider`` section.

-  **``access-key``**: AWS access-key.
   May also be supplied via the environment variable
   ``$AWS_ACCESS_KEY``
   *``required for EBS & S3 backing``*
-  **``secret-key``**: AWS secret-key.
   May also be supplied via the environment variable
   ``$AWS_SECRET_KEY``
   *``required for EBS & S3 backing``*
-  **``certificate``**: Path to the AWS user certificate. Used for
   uploading the image to an S3 bucket.
   May also be supplied via the environment variable
   ``$AWS_CERTIFICATE``
   *``required for S3 backing``*
-  **``private-key``**: Path to the AWS private key. Used for uploading
   the image to an S3 bucket.
   May also be supplied via the environment variable
   ``$AWS_PRIVATE_KEY``
   *``required for S3 backing``*
-  **``user-id``**: AWS user ID. Used for uploading the image to an S3
   bucket.
   May also be supplied via the environment variable ``$AWS_USER_ID``
   *``required for S3 backing``*

Example:

.. code:: yaml

    ---
    provider:
      name: ec2
      virtualization: hvm
      enhanced_networking: simple
      credentials:
        access-key: AFAKEACCESSKEYFORAWS
        secret-key: thes3cr3tkeyf0ryourawsaccount/FS4d8Qdva

Dependencies
------------

To communicate with the AWS API `boto <https://github.com/boto/boto>`__
is required (version 2.14.0 or higher) you can install boto with
``pip install boto`` (on wheezy, the packaged version is too low). S3
images are chopped up and uploaded using
`euca2ools <https://github.com/eucalyptus/euca2ools>`__ (install with
``apt-get install euca2ools``).