Skip to content

danzelziggy/awless

 
 

Repository files navigation

Build Status Go Report Card

terminal icon awless is a powerful, innovative and small surface command line interface (CLI) to manage Amazon Web Services.

Twitter | Wiki | Changelog

Why awless

awless stands out by providing the following features:

  • small and hierarchical set of commands
  • create and revert fully-fledged infrastructures through a new simple and powerful templating language (see awless templates (wiki))
  • local log of all your cloud modifications done through awless
  • exploration of your cloud infrastructure and resources relations, even offline using a local graph storage
  • greater output's readability with numerous machine and human friendly formats
  • ensure smart defaults & security best practices
  • connect easily using awless' smart SSH to your private & public instances

Install

Choose one of the following options:

  1. On macOS, use homebrew: brew tap wallix/awless; brew install awless
  2. With curl (macOS/Linux), run: curl https://raw.githubusercontent.com/wallix/awless/master/getawless.sh | bash
  3. Download the latest awless binaries (Windows/Linux/macOS) from Github
  4. If you have Golang already installed, install from the source with: go get -u github.com/wallix/awless

If you have previously used the AWS CLI or aws-shell, you don't need to configure anything! Your config will be automatically loaded (i.e. ~/.aws/{credentials,config}) and awless will prompt for any missing info.

Main features

video of a few awless commands
Note that the video above is in APNG and requires a recent browser.

  • Aliasing of resources through their natural name so you don't have to always use cryptic ids that are impossible to remember

  • awless show : Explore a resource - even offline thanks to the sync ;) - given only a name (or id/arn) showing its properties, relations, dependencies, etc.

  • awless run : Create, update and delete complex infrastructures with smart defaults and sound auto-complete through awless templates, ex: awless run my-awless-templates/create_my_infra.aws

  • Hundreds of powerful CRUD CLI one-liners integrated in the awless templating engine:

    $ awless create instance -h
    $ awless create vpc -h
    $ awless attach policy -h
    etc.
    
  • awless log : Easy reporting of all the CLI template executions

  • awless revert : Revert of executed templates and resources creation

  • Create instances straight from a distro name. No need to know the region or AMI ;) (free tier community bare distro only, see awless create instance -h)

    $ awless create instance distro=debian
    $ awless create instance distro=coreos
    $ awless create instance distro=redhat::7.2 type=t2.micro
    $ awless create instance distro=debian:debian:jessie lock=true
    $ awless create instance distro=amazonlinux:amzn2
    etc.
    
  • Leveraging AWS userdata to provision instance on creation from remote (i.e http) or local scripts: awless create instance ... userdata=/home/john/...

  • awless ssh : Clean and simple SSH to public & private instances using only a name

    $ awless ssh my-production-instance
    $ awless ssh redis-prod --through jump-server
    $ awless ssh 34.215.29.221
    $ awless ssh db-private --private
    $ awless ssh 172.31.77.151 --port 2222 --through my-proxy --through-port 23
    etc.
    
  • awless switch : Switch easily between AWS accounts (i.e. profile) and regions

     $ awless switch admin eu-west-2
     $ awless switch us-west-1
     $ awless switch mfa
     etc.
    
  • awless list : Clear and easy listing of multi-region cloud resources (subnets, instances, users, buckets, records, etc.) on AWS EC2, IAM, S3, RDS, AutoScaling, SNS, SQS, Route53, CloudWatch, CloudFormation, Lambda, etc.

  • Transparently syncing cloud resources locally to a graph representation in order for the CLI to leverage data and their relations in other awless commands and in an offline manner (more on the sync)

  • awless sync : Explicit and manual command to fetch & store resources locally. Then query & inspect your cloud offline

  • Output formats either human (Markdown-compatible tables) or machine readable (csv, tsv, json, ...): --format

  • Listing filters via resources properties or resources tags: --filter property=val, --tag Env=Production, --tag-value Purchased, --tag-key Dept,Internal

  • awless inspect : Leverage experimental inspectors which are small CLI utilities to run analysis on your cloud resources graphs

  • awless completion : CLI autocompletion for Unix/Linux's bash and zsh

Getting started

Take the tour at Getting Started (wiki).

Or read the introductory blog post about awless.

More articles:

Awards

About

awless is an open source project created by Henri Binsztok, Quentin Bourgerie, Simon Caplette and François-Xavier Aguessy at WALLIX. awless is released under the Apache License and sponsored by Wallix.

Disclaimer: Awless allows for easy resource creation with your cloud provider;
we will not be responsible for any cloud costs incurred (even if you create a 
million instances using awless templates).

Contributors are welcome! Please head to Contributing (wiki) to learn more. Note that awless uses triplestore another project developped at WALLIX.

About

A Mighty CLI for AWS

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 99.7%
  • Other 0.3%