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
).
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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file holy-cli-1.0.2.tar.gz
.
File metadata
- Download URL: holy-cli-1.0.2.tar.gz
- Upload date:
- Size: 21.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.18
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 013d5f409e54c7a37bfc81848ece1d549a9912dc048d421d67f6081b0945267d |
|
MD5 | d0539f8376ffc9603c3647109e790a14 |
|
BLAKE2b-256 | 4d777f8c8fb4ec1fa6324fa1ab903a61baba3208901f7421cee7a9169b9a9b1f |
File details
Details for the file holy_cli-1.0.2-py3-none-any.whl
.
File metadata
- Download URL: holy_cli-1.0.2-py3-none-any.whl
- Upload date:
- Size: 27.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.18
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7f24c9f1f4d88cfe25f4d24d7ede6552184d6a5d6afc9876c6b34adadfcc1dde |
|
MD5 | e473c69c02f2b92c65d9612cda146f60 |
|
BLAKE2b-256 | a2bb372c8346e018411a24e855cc820589721235516ddebf1cd382900d66812f |