Skip to main content

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:

  • CloudFormation smart management

    • 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

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

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:

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

awstools-0.1.tar.gz (6.9 kB view details)

Uploaded Source

File details

Details for the file awstools-0.1.tar.gz.

File metadata

  • Download URL: awstools-0.1.tar.gz
  • Upload date:
  • Size: 6.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for awstools-0.1.tar.gz
Algorithm Hash digest
SHA256 15fe638dcd41ec66a829e8bad37945922fb5dce8215e9102bda42e640f2760b1
MD5 1f6094d43e4e38782318d3f9c2e7ea6e
BLAKE2b-256 508d3f53015c0a7c711daa48fabda55aac46180748e31291f3152b2bdbf79018

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page