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

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

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.2.tar.gz (21.8 kB view hashes)

Uploaded Source

Built Distribution

holy_cli-1.0.2-py3-none-any.whl (27.0 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page