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).
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
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)
| File | Size | Uploaded | |
|---|---|---|---|
| holy-cli-1.0.2.tar.gz | 21.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|