Skip to main content

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

Project description

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

Upgrade

pip install --upgrade holy-cli

Configuration

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.

Follow our simple guide for complete setup here.

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

Development

Clone this repo and pip install:

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

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

holy-cli-1.0.0.tar.gz (20.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

holy_cli-1.0.0-py3-none-any.whl (25.8 kB view details)

Uploaded Python 3

File details

Details for the file holy-cli-1.0.0.tar.gz.

File metadata

  • Download URL: holy-cli-1.0.0.tar.gz
  • Upload date:
  • Size: 20.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.18

File hashes

Hashes for holy-cli-1.0.0.tar.gz
Algorithm Hash digest
SHA256 909d1e0e72a396dfcb1a98e406ec84ced8da156d51ca85118d421646bf80283a
MD5 24d6d737d9e0162b9dde5fea73ef656c
BLAKE2b-256 e4dd8fb5f2698ff1278f15ad72949b5067faf713396b07125beabdd2dceecf95

See more details on using hashes here.

File details

Details for the file holy_cli-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: holy_cli-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 25.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.18

File hashes

Hashes for holy_cli-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 49a0b29dc08935b5e923cf25b4a636bcc312a6fc950ff204605fdded5581fd12
MD5 8e391371cf646249c8d7b26d66ea8bf2
BLAKE2b-256 12462b880bd64e8fd8488ca8df87789d77c49e1862007f1dcb5742845e2fb289

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