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.0.5.tar.gz (6.8 kB view details)

Uploaded Source

File details

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

File metadata

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

File hashes

Hashes for awstools-0.0.5.tar.gz
Algorithm Hash digest
SHA256 8f259acdbf77d8023cf53ecfa824c0d8c7e122285f6778a34b852d5265c3dc6a
MD5 78ea27b6b35e2f3200dd87db0ea10987
BLAKE2b-256 724413c31c29a6d09fbc3ebfaf0a0b5c5cd4410115a593d638e932ab37b31aa3

See more details on using hashes here.

Supported by

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