Keep AWS instances stopped on out of office hours
Project description
stayontop
Development instances on AWS EC2 need to be shutdown off-hours.
This small project tries to address this need providing a clear config file in yaml.
You can specify which instances must be stopped/running all the time.
By default all instances are set to be stopped off-hours
You can set all instances with a specific project tag to be open
Assumes office hours are between 07:00 - 19:00
Assumes EC2 instance tags: “project”
Assumes EC2 instance name matches instance tag “Name”
A sample config file:
global:
restricted:
projects:
- BI
- CRM
- PUSHAPP
keep_running:
instances:
- sybase.acme.com
- hana01.acme.com
keep_stopped:
instances:
- sybase.acme.com
- hanadyn.acme.com
- apush.acme.com
weekend_on:
projects:
- BI
aws_boto_profile: SYS
- Use case #1: Please keep FMS project stopped at weekends
Do not put it on weekend_on anywhere in the config
By default all projects are stopped unless stated otherwise
With the following config SAP project instances will be running during weekends
global:
weekend_on:
projects:
- SAP
Use case #2: I want webdev01 instance to be running this night
date_of_today:
keep_running:
instances:
- webdev01
- Use case #3: Please keep webdev01 instance stopped on off-hours
Unless stated otherwise all instances are stopped on off-hours
Use case #4: Please keep dbdev01 instance stopped on working hours
global:
keep_stopped:
instances:
- dbdev01
- Use case #5: Please keep dbdev01 instance stopped on 29.12.2015
Add the following to the config
Remove from the global config if necessary
29.12.2015:
keep_stopped:
instances:
- dbdev01
Running
$ git clone stayontop.git
$ cd stayontop
$ python setup.py install
$ sudo -u jenkins /usr/bin/stayontop --dryrun project.yml
Parsed config: {'restricted': ['sky'], 'weekend_on': [], 'keep_running': [], 'keep_stopped':[], 'is_holiday': False, 'aws_boto_profile': 'ecom'}``
prj-front: running -> stopped
prj-staged: running -> stopped
prj-test: running -> stopped
Nothing is changed(dryrun mode)
$ sudo -u jenkins /usr/bin/stayontop project.yml
Parsed config: {'restricted': ['sky'], 'weekend_on': [], 'keep_running': [], 'keep_stopped': [], 'is_holiday': False, 'aws_boto_profile': 'ecom'}
prj-front: running -> stopped
....Stopping....
prj-staged: running -> stopped
....Stopping....
prj-test: running -> stopped
....Stopping....
$ sudo -u jenkins /usr/bin/stayontop project.yml
Parsed config: {'restricted': ['sky'], 'weekend_on': [], 'keep_running': [], 'keep_stopped': [], 'is_holiday': False, 'aws_boto_profile': 'ecom'}
prj-front: stopped -> stopped
prj-staged: stopped -> stopped
prj-test: stopped -> stopped
News
additional restriction with instance environment environment value will be case-insensitive
- restrict:
- projects:
FMS
- environment:
dev
staged
stage
test
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 stayontop-0.1a0.tar.gz.
File metadata
- Download URL: stayontop-0.1a0.tar.gz
- Upload date:
- Size: 4.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d0ed784bec4e23e69bf7a14b2960e746c48c6ef32269b9a9582bd38ebb5fa172
|
|
| MD5 |
fe61c38cc465ffe1281a55cb02fbd982
|
|
| BLAKE2b-256 |
57dc3c9095c7b763248a799044201a2e1c2cb3026cf3c829bf80c78510e65cd1
|