Skip to main content

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


Download files

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

Filename, size & hash SHA256 hash help File type Python version Upload date
stayontop-0.1a0.tar.gz (4.7 kB) Copy SHA256 hash SHA256 Source None Jan 20, 2016

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page