This is a pre-production deployment of Warehouse, however changes made here WILL affect the production instance of PyPI.
Latest Version Dependencies status unknown Test status unknown Test coverage unknown
Project Description
=====================================
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 History

Release History

0.3.10

This version

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.3.9

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.3.8

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.3.7

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.3.6

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.3.5

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.3.4

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.3.3

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.3.2

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.3.1

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.3

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.2.3

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.2.2

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.2.1

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.2

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.1.1

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.1

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.0.6

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.0.5

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.0.4

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.0.3

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.0.2

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.0.1

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

Download Files

Download Files

TODO: Brief introduction on what you do with files - including link to relevant help section.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
awstools-0.3.10.tar.gz (20.4 kB) Copy SHA256 Checksum SHA256 Source Apr 30, 2015

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS HPE HPE Development Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting