skip to navigation
skip to content

Not Logged In

awstools 0.3.4

High level tools to manage an AWS infrastructure

Latest Version: 0.3.7

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

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:

Credits

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"
 
File Type Py Version Uploaded on Size
awstools-0.3.4.zip (md5) Source 2013-07-04 32KB
  • Downloads (All Versions):
  • 88 downloads in the last day
  • 497 downloads in the last week
  • 2617 downloads in the last month