![Go Report Card](https://goreportcard.com/badge/github.com/wallix/awless)
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:
- On macOS, use homebrew:
brew tap wallix/awless; brew install awless
- With
curl
(macOS/Linux), run: curl https://raw.githubusercontent.com/wallix/awless/master/getawless.sh | bash
- Download the latest
awless
binaries (Windows/Linux/macOS) from Github
- 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
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.