Sceptre
About
Sceptre is a tool to drive AWS CloudFormation. It automates the mundane, repetitive and error-prone tasks, enabling you to concentrate on building better infrastructure.
Install
$ pip install sceptre-core
More information on installing sceptre can be found in our Installation Guide
Example
Sceptre organises Stacks into "Stack Groups". Each Stack is represented by a
YAML configuration file stored in a directory which represents the Stack Group.
Here, we have two Stacks, vpc and subnets, in a Stack Group named dev:
$ tree
.
├── config
│ └── dev
│ ├── config.yaml
│ ├── subnets.yaml
│ └── vpc.yaml
└── templates
├── subnets.py
└── vpc.py
Usage
Sceptre can be used from the CLI (see sceptre-cli), or imported as a Python
package.
Python API
Using Sceptre as a Python module is very straightforward. You need to create a SceptreContext, which tells Sceptre where your project path is and which path you want to execute on, we call this the "command path".
After you have created a SceptreContext you need to pass this into a SceptrePlan. On instantiation the SceptrePlan will handle all the required steps to make sure the action you wish to take on the command path are resolved.
After you have instantiated a SceptrePlan you can access all the actions you can
take on a Stack, such as validate(), launch(), list() and delete().
from sceptre.context import SceptreContext
from sceptre.plan.plan import SceptrePlan
context = SceptreContext("/path/to/project", "command_path")
plan = SceptrePlan(context)
plan.launch()
Full API reference documentation can be found in the Documentation
Use Docker Image
View our Docker repository.
To use our Docker image follow these instructions:
-
Pull the image
docker pull cloudreach/sceptre-core:[SCEPTRE_VERSION_NUMBER]e.g.docker pull cloudreach/sceptre-core:x.x.x. Leave out the version number if you wish to runlatestor rundocker pull cloudreach/sceptre-core:latest. -
Run the image. You will need to mount the working directory where your project resides to a directory called
project. You will also need to mount a volume with your AWS config to your docker container. E.g.
If you want to use a custom ENTRYPOINT simply amend the Docker command:
docker run -ti --entrypoint='' cloudreach/sceptre-core:latest sh
The above command will enter you into the shell of the Docker container where you can execute sceptre commands - useful for development.
If you have any other environment variables in your non-docker shell you will
need to pass these in on the Docker CLI using the -e flag. See Docker
documentation on how to achieve this.
Tutorial and Documentation
Contributing
See our Contributing Guide
Release files for sceptre-core 0.0.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| sceptre-core-0.0.2.tar.gz | 72.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| sceptre_core-0.0.2-py2.py3-none-any.whl | Python 2, Python 3 | none | any | Details |
Total release size: 108.6 kB
Release files / sceptre-core-0.0.2.tar.gz
| Download URL | sceptre-core-0.0.2.tar.gz |
|---|---|
| Size | 72.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4c9768aaa3b38b9e9feffbc13a2ad54b9bd790a64c1c5c0b0cc477a381aff501
|
|
BLAKE2b-256 checksum How to use checksums |
8b3afdb505b9e76b6178dc0eeb541cdd0e2f23ff0139a5e96c53d0e240f33b8e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/2.7.15
|
Release files / sceptre_core-0.0.2-py2.py3-none-any.whl
| Download URL | sceptre_core-0.0.2-py2.py3-none-any.whl |
|---|---|
| Size | 36.6 kB |
| Tags | Python 2 Python 3 |
|
SHA-256 checksum How to use checksums |
4d944e7d5a02ce3f9e6b3516eb11d0da9d540eddf8b893bd9f10d22d16f161e3
|
|
BLAKE2b-256 checksum How to use checksums |
0bb25a2a2353be8fc570cb0da2b658475dfae53b6f3d53086c1fc6ffb1c4a36c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/2.7.15
|