High level tools to manage an AWS infrastructure
Project description
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:
-
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
-
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:
<specified by –config>
./awstools.cfg
~/.awstools.cfg
/etc/awstools.cfg
An application settings file is searched in this order:
specified by –settings
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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file awstools-0.2.tar.gz
.
File metadata
- Download URL: awstools-0.2.tar.gz
- Upload date:
- Size: 9.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e17293f9d7c6b43a81d0552bf75f78a29b2b27c549b2272285a7397ca3b5e305 |
|
MD5 | 9642096215f900f88e7b7a0d2a4ae11e |
|
BLAKE2b-256 | 086ae1203c78c9ca5c63b3af070f05c580a7db1d52ba8c4c37ff754d80638e5d |