awsum

command module
v1.1.6 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 28, 2025 License: Apache-2.0 Imports: 15 Imported by: 0

README

awsum

a fun CLI tool for working with AWS infra (cross-platform)

Installation

Required: Go 1.25

Installing from source:

git clone https://github.com/levelshatter/awsum
cd awsum/
go install 

Installing via go install:

go install github.com/levelshatter/awsum@latest

Installing via packaged release: Releases

Configuring

awsum uses the same exact configuration the awscli tool uses (since we use the client library already) to keep environments less messy.

If you have awscli installed & configured, you are already good to go!

If not, then you can do the following:

awsum configure

These commands create a basic configuration for your awsum and potential future awscli installations.

Usage

All AWS operations triggered by AWS service clients created by awsum are logged to files in a awsum directory created in the ~/.aws directory.

  • ~/.aws/awsum/awsum-global-aws-log-output for a record of all operations done by executions of awsum.
  • ~/.aws/awsum/awsum-session-aws-log-output-YYYY-MM-DD__HH-mm-SS for operations grouped by individual executions of awsum.

To get a description of awsum and how to use its commands and sub-commands:

awsum --help

(Example) To get help with commands and sub-commands:

awsum instance --help
Real-World Examples

Get a list of all instances in csv:

awsum instance list --format csv

Sequentially open a secure shell (SSH) to every instance with a name matching "worker":

awsum instance shell --name "worker"

Get the free disk space of every ec2 instance with a name matching "website" over SSH:

awsum instance shell --name website "df -h"

Basic app deployment w/ load-balancing (Amazon Linux example):

Note: awsum does not modify any non-command-related resources to prevent breaking existing infrastructure.

Note 2: This is actually an exact replica of the demo deployment done by awsum (on two t2.nano instances) NGINX Demo.

Note 3: Please, please, please, properly secure your CI/CD platforms, your instances, and lock down the users awsum will authenticate as, you do not want to give fully privileged RCE to anyone/and or service making code changes...

# basic deployment logic

awsum instance shell --name demo "docker rm nginx --force"
awsum instance shell --name demo "docker run -d -p 80:80 --name nginx nginxdemos/hello"

"
load balance an http service running on port 80 on
instances matching the name 'demo' using https with
a certificate from ACM and with a domain pointing to it.
"

awsum instance load-balance \
    --service "nginx-demo" \
    --name demo \
    --port 443:80 \
    --protocol https:http \
    --certificate "levelshatter.com" \
    --domain "awsum.levelshatter.com"

awsum really shines when used in CI/CD processes.

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
internal
app

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL