Skip to main content
=====================================
AWSTOOLS - high level tools for AWS
=====================================

AWSTOOLS is a Python package that provide modules and commands to manage an
infrastructure on `Amazon Web Services <http://aws.amazon.com>`_.

Awstools is driven by a set of conventions and choices to makes system
operations simple to the most. Awstools is mainly focused on managing multiple
isolated social/web/mobile architectures.


Main conventions and choices:

- Using one of the Amazon Web Service is better than a custom solution
- Operation system: Ubuntu LTS or newer
- Configuration system: `Puppet <http://puppetlabs.com>`_


At the moment awstools supports:

- `CloudFormation <http://aws.amazon.com/cloudformation>`_

- **ApplicationSettings** (awstools.applications)
Describe your application by declaring a set of *Pool* per *Environment*

- **cfn**: List, Create, Update, Delete, Inspect
Manage your AWS resources based on ApplicationSettings and cloudformation
templates

- `EC2 <http://aws.amazon.com/ec2>`_

- **ec2ssh**:
Connect to one or multiple instances in a handy way

- **awstools.fabric.populate_roledefs**:
Populate Fabric roles with EC2 instances using the tags.
fab -R App-Role cmd_run_on_all_app-role-*_instances



Installation
============

Python requirements:
- argh
- boto
- PyYaml


Configuration
=============

::

You must have a valid boto credentials provider to use the awstools.
See the `Boto tutorial <http://docs.pythonboto.org/en/latest/boto_config_tut.html>`_.

- A **configuration file** is searched in this order:

1. <specified by --config>
2. ./awstools.cfg
3. ~/.awstools.cfg
4. /etc/awstools.cfg

- An application settings file is searched in this order:

1. specified by --settings
2. specified by awstools configuration file


Testing
=======

Run the test with nose

::

pip install -r requirements-test.txt
nosetests


Examples
========

Command ec2ssh
--------------

::

$ ec2ssh MyInstanceByTagName
Welcome to Ubuntu 12.04 LTS (GNU/Linux 3.2.0-23-virtual x86_64)

ubuntu@tb-java-stage:~$


$ ec2ssh MyInstanceByTagName uptime
19:14:03 up 182 days, 4:49, 0 users, load average: 0.08, 0.06, 0.05


$ ec2ssh App-Role-* uptime
----- Command: uptime
----- Instances(2): App-Role-development,App-Role-production
Confirm? (Y/n)
----- i-a0b24444: ec2-12-12-12-12.compute-1.amazonaws.com 10.101.101.101
19:21:32 up 52 days, 3:51, 0 users, load average: 0.00, 0.01, 0.05
----- i-ce786666: ec2-23-23-23-23.compute-1.amazonaws.com 10.201.201.201
19:21:32 up 182 days, 4:56, 0 users, load average: 0.08, 0.04, 0.05
----- DONE


$ ec2ssh i-a0b24444 uptime
19:24:28 up 52 days, 3:54, 0 users, load average: 0.00, 0.01, 0.05


$ ec2ssh 10.101.101.101 uptime
19:25:18 up 52 days, 3:55, 0 users, load average: 0.00, 0.01, 0.05


$ ec2ssh App1-*,App2-*,App3-Role-test uptime


Configuration
-------------

::

[cfn]
settings = ~/cloudformation/applications.yaml
templatedir = ~/cloudformation


Applications Settings
---------------------

::

Application: gmail
ShortName: gm
KeyName: google-secretkey
live: True
environments:
production:
storage:
template: storage.js
AvailabilityZones: us-east-1a,us-east-1b,us-east-1c
WebServerCapacity: 6
InstanceType: m1.xlarge
frontweb:
template: frontweb.js
AvailabilityZones: us-east-1a,us-east-1b
WebServerCapacity: 4
InstanceType: m1.medium
stage:
storage:
template: storage.js
AvailabilityZones: us-east-1a,us-east-1b
WebServerCapacity: 2
InstanceType: m1.small
frontweb:
template: frontweb.js
AvailabilityZones: us-east-1a,us-east-1b
WebServerCapacity: 2
InstanceType: m1.small
test:
frontweb:
template: frontweb.js
AvailabilityZones: us-east-1a,us-east-1b
WebServerCapacity: 2

The application *gmail* has a production, a staging and a test environment.
An environment is defined by two pools: *storage* and *frontweb*.
However in test you mock the storage and don't need a *storage* pool.
All those settings will be available for the CloudFormation templates.



Contribute
==========

Want to contribute, report a but of request a feature ? The development goes on
at Ludia's BitBucket account:

- **Report bugs**: https://bitbucket.org/pior/awstools/issues
- **Fork the code**: https://bitbucket.org/pior/awstools
- **Download**: http://pypi.python.org/pypi/awstools


Credits
=======

* `Pior Bastida <pior@pbastida.net>`_ is the originator and main author.


Changelog for Awstools
======================


0.3.10 (2015-04-30)
-------------------

- Nothing changed yet.


0.3.9 (2015-04-30)
------------------

- Nothing changed yet.


0.3.8 (2015-04-23)
------------------

- Nothing changed yet.


0.3.7 (2013-12-17)
------------------

- Fix wrong priority order when reading multiple configuration files


0.3.6 (2013-10-11)
------------------

- update author email
- cfnas: add subcommand metrics to control the ASG metrics collection


0.3.5 (2013-10-10)
------------------

- ec2ssh: add instance private hostname matching
- Move autoscale subcommands to a new cfnas command
- ec2ssh: add bash completion helpers
- Pylint


0.3.4 (2013-07-04)
------------------

- cfn batch-update: continue after a failure if user wants to


0.3.3 (2013-07-04)
------------------

- Add --force option to `cfn update` command
- Add a `cfn batch-update` command


0.3.2 (2013-06-11)
------------------

- Complete hgignore
- ec2ssh: enhance fallback when denying connection to multiple instances
- Fix wrong current_capacity displayed in autoscale update utility


0.3.1 (2013-03-13)
------------------

- fix *cfn setcapacity* setting 0 instead of the desired value


0.3 (2013-03-11)
----------------

- start using zest.releaser for versioning


0.2.3 (2013-02-01)
------------------

- display template description in cfn subcommands
- create subcommand "cfn activities"

Release files for awstools 0.3.10

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for awstools 0.3.10
File Size Uploaded
awstools-0.3.10.tar.gz 20.4 kB Details

Release files / awstools-0.3.10.tar.gz

Download URL awstools-0.3.10.tar.gz
Size 20.4 kB
Tags Source
SHA-256 checksum
How to use checksums
ea3569f6caeddd959a534180b6a6187ce8ed96a8f41c20d801cce4d95aff7fd4
BLAKE2b-256 checksum
How to use checksums
b8680f7c7f160945728db7ab26dc85b9e19fa7919648704f046b9b494b23d116
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

0.3.10 This release

1 release file

0.3.9

1 release file

0.3.8

1 release file

0.3.7

1 release file

0.3.6

1 release file

0.3.5

1 release file

0.3.4

1 release file

0.3.3

1 release file

0.3.2

1 release file

0.3.1

1 release file

0.3

1 release file

0.2.3

1 release file

0.2.2

1 release file

0.2.1

1 release file

0.2

1 release file

0.1.1

1 release file

0.1

1 release file

0.0.6

1 release file

0.0.5

1 release file

0.0.4

1 release file

0.0.3

1 release file

0.0.2

1 release file

0.0.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page