Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Contributors Forks Stargazers Issues Twitter


Awesome CloudOps Automation

CloudOps automation made simple!
Explore the docs
unSkript on YouTube

Visit our blog Β· Report Bug Β· Request Feature


Simplify CloudOps automation for developers and DevOps engineers.


A single repository to satisfy all your day-to-day CloudOps automation needs. Automate your workflows with our Actions that build automated Runbooks.

Are you looking for a script to automate your Kubernetes management? A script to restart the pod that is OOMkilled? We've got you covered.

Quick Start Guide

Get started with Docker:

docker run -it -p 8888:8888 \
 -v $HOME/.unskript:/data \
 --user root \

Cloud Sandbox

  • A free Cloud version of the OSS offering.

Open and Use a xRunBook

Once your Docker image is up and running, unSkript will be running locally on your computer at A table lists the xRunBooks that are available, with a link to the description and a link to the local version of the xRunBook.

Click on the URL of the xRunBook you would like to explore. It will open in a new browser tab. To run this XRunBook:

  1. Check the Parameters button at the top of the page. This lists all of the input parameters, and the default values. Change them if needed.
  2. Click on each Action in the xRunBook. The Configurations button will show if Credentials are needed, and which inputs are used for each action. How to Add Credentials.
  3. Once each Action has been assigned Credentials and inputs, run each Action (in order) to run your xRunBook.

Included xRunBooks

See Full List

These xRunBooks are included in every install. Use them as is, or make a copy to modify for your use!

Category Runbooks URL
AWS AWS Access Key Rotation Open in browser
AWS Add new IAM user Open in browser
AWS Configure url endpoint on a cloudwatch alarm Open in browser
AWS Copy ami to all given AWS regions Open in browser
AWS Delete Unattached EBS Volume Open in browser
AWS Detach Instance from ASG Open in browser
AWS Detach ec2 Instance from ASG Open in browser
AWS Detect ECS failed deployment Open in browser
AWS EC2 Disk Cleanup Open in browser
AWS Enforce HTTP Redirection across AWS ALB Open in browser
AWS Enforce Mandatory Tags Across All AWS Resources Open in browser
AWS Find EC2 Instances Scheduled to retire Open in browser
AWS Get Aws Elb Unhealthy Instances Open in browser
AWS Lowering AWS CloudTrail Costs by Removing Redundant Trails Open in browser
AWS Monitor AWS DynamoDB provision capacity Open in browser
AWS Notify about unused keypairs Open in browser
AWS Publicly Accessible Amazon RDS Instances Open in browser
AWS Remediate unencrypted S3 buckets Open in browser
AWS Renew SSL Certificate Open in browser
AWS Resize EBS Volume Open in browser
AWS Resize List Of Pvcs Open in browser
AWS Resize PVC Open in browser
AWS Restart AWS EC2 Instances By Tag Open in browser
AWS Restart Aws Instance given Tag Open in browser
AWS Restart Unhealthy Services Target Group Open in browser
AWS Restrict S3 Buckets with READ WRITE Permissions Open in browser
AWS Run EC2 from AMI Open in browser
AWS Secure Publicly accessible Amazon RDS Snapshot Open in browser
AWS Stop Untagged EC2 Instances Open in browser
AWS Terminate EC2 Instances Without Valid Lifetime Tag Open in browser
AWS Troubleshooting Your EC2 Configuration in Private Subnet Open in browser
AWS Update and Manage AWS User Permission Open in browser
ElasticSearch Elasticsearch Rolling Restart Open in browser
Jenkins Fetch Jenkins Build Logs Open in browser
Kubernetes Delete Evicted Pods From Namespaces Open in browser
Kubernetes Get Kube System Config Map Open in browser
Kubernetes K8S Get Candidate Nodes Given Config Open in browser
Kubernetes K8S Log Healthcheck Open in browser
Kubernetes K8S Pod Stuck In CrashLoopBack State Open in browser
Kubernetes K8S Pod Stuck In ImagePullBackOff State Open in browser
Kubernetes K8S Pod Stuck In Terminating State Open in browser
Kubernetes Resize List of PVCs Open in browser
Kubernetes Resize PVC Open in browser
Kubernetes Rollback k8s Deployment and Update Jira Open in browser
Postgresql Display Postgresql Long Running Open in browser

Contribute to Awesome-CloudOps-Automation

Any contributions you make are greatly appreciated. Check out our Contribution Guidelines for more details.

How to Contribute?

  1. Work with us on any of our open issues.
  2. Create a new Action. Read the Action developer guide for more details.
  3. Combine Actions into a xRunBook. Your xRunBook will be featured on the ReadMe. What's a xRunBook?

Contribution Tips:

  1. Use the Docker environment, or our free cloud sandbox for testing your contribution.
  2. Join our Slack Community to discuss your PR, and for support if you run into any issues.

Create a new xRunBook:

  • Using Docker:
    1. Your RunBooks are stored locally at $HOME/Awesome-CloudOps-Automation/custom/runbooks Copy an existing xRunBook, rename it and then restart Docker.
    2. Point your browser to<YOUR_RUNBOOK_NAME.ipynb> to begin editing.
  • unSkript Sandbox:
    1. The onboarding flow will drop you into Runbook creation with sandbox credentials
    2. Start building your lego from the proposed handle (GCP, k8s et al)
  1. Submit Your xRunBook to the repository Follow the submission steps to remove credentials, etc. from your xRunBook.
  2. Submit a PR!

Import a xRunBook

  1. xRunBooks are stored locally at $HOME/Awesome-CloudOps-Automatin/custom/runbooks . Place your existing RunBook in this directory.
  2. Restart your Docker instance.
  3. Point your browser to<YOUR_RUNBOOK_NAME.ipynb> to begin using your xRunBook.

Create a new Action:

  1. Creating a new Action is simple:
    1. If you will not use external credentials, click +Add Action at the top of the menu.
    2. If you will be using an existing credential, add an existing ACtion for that service (like AWS), and edit the code to create your new Action.
    3. If you are creating a new credential, reach out to the team - we'd love to help!
  2. Creating Custom Actions describes the steps to create your own Action.
  3. To submit to OSS, follow the Submit An Action instructions.

Extending Docker

You can use our base docker to extend the functionality to fit your need. Follow this documentto create you own custom docker.

unSkript CLI

With (called unskript cuttle) allows you to

  • List Existing Runbook
  • List All Existing Health Checks
  • List All Existing Health Check per connector
  • Run All Existing Health Checks
  • Run All Existing Health Checks per connector
  • Run an existing Runbook

Here are the Options that are supported by the CTL Command 
usage: unskript-client [-h] [-lr] [-rr RUN_RUNBOOK] [-rc RUN_CHECKS] [-df DISPLAY_FAILED_CHECKS] [-lc LIST_CHECKS] [-sa SHOW_AUDIT_TRAIL]

Welcome to unSkript CLI Interface VERSION: 0.1.0

optional arguments:
  -h, --help            show this help message and exit
  -lr, --list-runbooks  List Available Runbooks
  -rr RUN_RUNBOOK, --run-runbook RUN_RUNBOOK
                        Run the given runbook
  -rc RUN_CHECKS, --run-checks RUN_CHECKS
                        Run all available checks [all | connector | failed]
                        Display Failed Checks [all | connector]
  -lc LIST_CHECKS, --list-checks LIST_CHECKS
                        List available checks, per connector or all
  -sa SHOW_AUDIT_TRAIL, --show-audit-trail SHOW_AUDIT_TRAIL
                        Show audit trail [all | connector | execution_id]


Join the CloudOps Community Slack Channel to connect with other users, contributors and awesome people behind awesome CloudOps automation project.


See the open issues for a list of proposed features (and known issues).


Except as otherwise noted this project is licensed under the Apache License, Version 2.0 .

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at .

Unless required by applicable law or agreed to in writing, project distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.