wallix / awless

A Mighty CLI for AWS
http://awless.io/
Apache License 2.0
4.98k stars 263 forks source link
awless aws aws-cli cli cloud cloud-management devops devops-tools golang

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 having the following characteristics:

For more read our FAQ below (how awless compares to other tools, etc.)

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 (more at our getting started).

Main features

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

Getting started

Take the tour at Getting Started (wiki) or read the introductory blog post about awless.

More articles:

Awards

FAQ

Here is a compilation of the question we often answer (thanks for asking them so that we can make things clearer!):

There are already some AWS CLIs. What is awless unique approach?

Three things that differentiates awless from other AWS CLIs:

Leveraging and combining the points above, awless lays some strong foundations for plenty of current/future features/characteristic such as:

How do you create infrastructure with awless?

You build infrastructure using template files or command one-liners that get compiled and run through awless builtin engine. See what the templating language looks like. Learn more about the way templates work

Note that all your actions against the cloud are logged. Templates are revertible/rollbackable.

How does awless compares to aws-shell or saws?

(Points above should also help answering this question)

aws-shell and saws are directly mapped to the official AWS CLI. Their only objective is to make you productive and help you manage exhaustively the sheer number of AWS services, options, etc.

awless addresses this UI/productivity concern differently: small and hierarchical set of commands; favoring enriched listing with relations showing over AWS exhaustive outputting of properties; more useful human/machine formats.

The main point is that the UI/productivity concern is just a feature of awless and not its primary or only one, so there is much more to the tool.

Also aws-shell and saws are exhaustive in their support of AWS services. awless is so far more infrastructure centric, with an emphasis on enriching the information about your real infrastructure. awless is able to add any new AWS service quickly if that fits and make sense (see wiki on how to add a new AWS service).

How does awless compares to Terraform?

Terraform is a great product! awless is much younger than Terraform and Terraform is much broader in scope.

The approach is different though. When creating insfrastructure awless:

Does awless handles state when creating infrastructure (i.e. keep track of the changes)?

Quoting from a logz.io/blog entry: "Terraform is an amazing tool but a major challenge is managing the state file. Whenever you apply changes to your infrastructure, the entire managed body of code and created objects are tracked in the Terraform State file (.tfstate), which can reach hundreds of thousands of lines and must be managed carefully lest you incur large merge conflicts or unwanted resource changes", Ofer Velich.

As for now with awless, we have taken a different path: awless does not keep state of your cloud; it is more of an all-or-nothing deployment solution.

Note that awless logs (through rich and revertable logs) all your actions against the cloud and that you can revert any template ran.

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.