Welcome, guest | Sign In | My Account | Store | Cart

Notice! PyPM is being replaced with the ActiveState Platform, which enhances PyPM’s build and deploy capabilities. Create your free Platform account to download ActivePython or customize Python with the packages you require and get automatic updates.

pypm install awstools

How to install awstools

  1. Download and install ActivePython
  2. Open Command Prompt
  3. Type pypm install awstools
 Python 2.7Python 3.2Python 3.3
Windows (32-bit)
Windows (64-bit)
Mac OS X (10.5+)
Linux (32-bit)
Linux (64-bit)
0.3.4 Available View build log
Lastest release
version 0.3.4 on Jan 9th, 2014

AWSTOOLS is a Python package that provide modules and commands to manage an infrastructure on Amazon Web Services.

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

At the moment awstools supports:

  • 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
    • ec2ssh: Connect to one or multiple instances in a handy way


Python requirements:
  • argh
  • boto
  • PyYaml


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


Run the test with nose

pip install -r requirements-test.txt


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


$ 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
 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
 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 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
settings = ~/cloudformation/applications.yaml
templatedir = ~/cloudformation
Applications Settings
Application: gmail
ShortName: gm
KeyName: google-secretkey
live: True
      template: storage.js
      AvailabilityZones: us-east-1a,us-east-1b,us-east-1c
      WebServerCapacity: 6
      InstanceType: m1.xlarge
      template: frontweb.js
      AvailabilityZones: us-east-1a,us-east-1b
      WebServerCapacity: 4
      InstanceType: m1.medium
      template: storage.js
      AvailabilityZones: us-east-1a,us-east-1b
      WebServerCapacity: 2
      InstanceType: m1.small
      template: frontweb.js
      AvailabilityZones: us-east-1a,us-east-1b
      WebServerCapacity: 2
      InstanceType: m1.small
      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.


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


Changelog for Awstools

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"

Subscribe to package updates

Last updated Jan 9th, 2014

Download Stats

Last month:3

What does the lock icon mean?

Builds marked with a lock icon are only available via PyPM to users with a current ActivePython Business Edition subscription.

Need custom builds or support?

ActivePython Enterprise Edition guarantees priority access to technical support, indemnification, expert consulting and quality-assured language builds.

Plan on re-distributing ActivePython?

Get re-distribution rights and eliminate legal risks with ActivePython OEM Edition.