Sceptre is a tool to drive AWS CloudFormation. It automates away some of the more mundane, repetitive and error-prone tasks, allowing you to concentrate on building better infrastructure.
Sceptre's source code can be found here.
Features:
- Code reusability by separating a stack's template and its configuration
- Support for templates written in JSON, YAML or Python DSLs such as Troposphere
- Dependency resolution by passing of stack outputs to parameters of dependent stacks
- Environment support by bundling related stacks into logical groups (e.g. dev and prod)
- Environment-level commands, such as creating multiple stacks with a single command
- Fast, highly parallelised builds
- Built in support for working with stacks in multiple AWS accounts
- Infrastructure visibility with meta-operations such as stack querying protection
- Support for inserting dynamic values in templates via customisable resolvers
- Support for running arbitrary code as hooks before/after stack builds
Sceptre organises stacks into environments. Each stack is represented by a YAML configuration file stored in a directory which represents the environment. Here, we have two environments, prod
and dev
$ tree . ├── LICENSE ├── NOTICE ├── README.rst ├── config │ ├── config.yaml │ ├── dev │ │ ├── config.yaml │ │ ├── efs.yaml │ │ ├── rds.yaml │ │ ├── role.yaml │ │ ├── security-groups.yaml │ │ ├── vpc.yaml │ │ └── wordpress.yaml │ └── prod │ ├── config.yaml │ ├── efs.yaml │ ├── rds.yaml │ ├── security-groups.yaml │ ├── vpc.yaml │ └── wordpress.yaml └── src ├── base.py ├── constants.py ├── efs.py ├── rds.py ├── role.py ├── security_groups.py ├── vpc.py └── wordpress.py
$ pip install sceptre
More information on installing sceptre can be found in our Installation Guide.
Sceptre can be used from the CLI, or imported as a Python package.:
$ git clone [email protected]:cloudreach/sceptre-wordpress-example.git $ cd sceptre-wordpress-example
Be sure your AWS credential are properly configured
How to deploy dev
and prod
$ sceptre launch dev $ sceptre launch prod
How to apply a change-set on dev
for wordpress
stack
$ sceptre create dev wordpress $ sceptre execute dev wordpress
sceptre is licensed under the Apache Software License 2.0.