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.

Source Distribution

stayontop-0.1a0.tar.gz (4.7 kB view details)

Uploaded Source

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

Hashes for stayontop-0.1a0.tar.gz
Algorithm Hash digest
SHA256 d0ed784bec4e23e69bf7a14b2960e746c48c6ef32269b9a9582bd38ebb5fa172
MD5 fe61c38cc465ffe1281a55cb02fbd982
BLAKE2b-256 57dc3c9095c7b763248a799044201a2e1c2cb3026cf3c829bf80c78510e65cd1

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