Skip to main content

Holy

Holy is a CLI tool that makes it effortless to create, manage and connect to servers in your AWS account.

If you need to quickly create EC2 instances for development and testing, this tool is for you. It abstracts away all of the configuration for VPC, IAM, security group, key pair etc into one command (holy server create).

Demo video →

Installation

Please make sure you have Python 3.9 or newer (python --version):

pip install holy-cli
holy --help

Problems? Visit the wiki →

Upgrade

pip install --upgrade holy-cli

Configuration

Watch our AWS setup guide →

To run Holy commands, you will need to have credentials to your AWS account set. Holy will look for credentials the same way as the AWS CLI or SDK does (e.g. inside ~/.aws/credentials file or as environment variables).

Ensure the IAM user for those credentials has the AdministratorAccess permission policy attached.

Usage

Create a server:

# No options, create with a random name using amazon-linux OS on a micro instance (within the free tier):

holy server create

# Create with a specific name, using ubuntu on a large compute optimized instance with 30GB disk space:

holy server create my_server --os=ubuntu:22 --type=c4.large --disk-size=30

# Create with a specific Amazon machine image:

holy server create my_server --image-id="ami-00d5053dee71cee04"

# Create and open ports 22 and 3000 to the world:

holy server create my_server --ports="22,3000"

# Create and allow the server to list all S3 buckets:

holy server create my_server --actions="s3:ListAllMyBuckets"

# Create and run a script once launched:

holy server create my_server --script=/path/to/install_software.sh

SSH into a server:

# SSH straight in:

holy server ssh my_server

# Save SSH config for use later (VS Code, ssh command etc):

holy server ssh my_server --save

# SSH in with a particular username:

holy server ssh my_server --username=root

Manage inbound server ports:

# Open port 80 to the world:

holy server port my_server --action=open --port=80

# Close port 80 to the world:

holy server port my_server --action=close --port=80

# Open port 80 to a specific IP address:

holy server port my_server --action=open --port=80 --ip=1.2.3.4

List all servers:

holy server list

# Filter to just servers running
holy server list --running

Specific server actions:

# View info about a server
holy server info my_server

# Start a server
holy server start my_server

# Stop a server
holy server stop my_server

# Delete a server
holy server delete my_server

Remove all infrastructure created by holy:

holy teardown

Support

  • Visit the wiki for more details and FAQ's
  • Create a new discussion for any questions
  • Create an issue for bug reports and feature requests

Development

Clone this repo and pip install:

pip install -e .[tests]
pytest # run unit tests

Metadata

Release files for holy-cli 1.0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for holy-cli 1.0.2
File Size Uploaded
holy-cli-1.0.2.tar.gz 21.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for holy-cli 1.0.2
File Interpreter ABI Platform
holy_cli-1.0.2-py3-none-any.whl Python 3 none any Details

Total release size: 48.7 kB

Release files / holy-cli-1.0.2.tar.gz

Download URL holy-cli-1.0.2.tar.gz
Size 21.8 kB
Tags Source
SHA-256 checksum
How to use checksums
013d5f409e54c7a37bfc81848ece1d549a9912dc048d421d67f6081b0945267d
BLAKE2b-256 checksum
How to use checksums
4d777f8c8fb4ec1fa6324fa1ab903a61baba3208901f7421cee7a9169b9a9b1f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.9.18

Release files / holy_cli-1.0.2-py3-none-any.whl

Download URL holy_cli-1.0.2-py3-none-any.whl
Size 27.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7f24c9f1f4d88cfe25f4d24d7ede6552184d6a5d6afc9876c6b34adadfcc1dde
BLAKE2b-256 checksum
How to use checksums
a2bb372c8346e018411a24e855cc820589721235516ddebf1cd382900d66812f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.9.18

Release history Release notifications | RSS feed

This release

1.0.2 This release

2 release files

1.0.1

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page