Yesterday, I was attending a meetup from the great French AWS Users Group, and Henri shows us a great new project where he is working on, it’s called: awless
.
awless
is a great alternative of the official AWS CLI. It’s written in Go, and available on Apache license on Github.
awless
will enhance your experience with CLI with key features like: autocompletion, offline mode (--local
), template support, revert capabilities, etc…
Using well-known syntax: subject
, verb
, complement
: it simplifies drastically the daily operations with the CLI, for example:
Examples#
1
2
3
4
5
6
7
8
9
10
|
[13:37][Majora][~]$ awless list instances
| ID ▲ | ZONE | NAME | STATE | TYPE | PUBLIC IP | PRIVATE IP | UPTIME | KEYPAIR |
|---------------------|------------|------|---------|----------|---------------|---------------|---------|--------------|
| i-0099888399012e5b2 | eu-west-1c | | running | t2.micro | 52.212.2.1XX | 172.31.24.233 | 48 secs | myCPFreeTier |
| i-033e57e044e6c8617 | eu-west-1c | | running | t2.micro | 52.212.84.XX | 172.31.28.107 | 48 secs | myCPFreeTier |
| i-0402fcfe2ad45c675 | eu-west-1a | | stopped | t2.micro | | 172.31.44.109 | 5 weeks | myCPFreeTier |
| i-05c5b1079128cbeae | eu-west-1c | | running | t2.micro | 34.251.228.XX | 172.31.22.94 | 48 secs | myCPFreeTier |
| i-0cf50db0c11fd023f | eu-west-1c | | running | t2.micro | 52.30.242.XX | 172.31.25.192 | 48 secs | myCPFreeTier |
| i-0fea0ce2c684edd15 | eu-west-1c | | running | t2.micro | 54.72.150.XXX | 172.31.18.180 | 48 secs | myCPFreeTier |
|
PS: All outputs are markdown
compatible.
PS2: Don’t blame me for instances without name tag. :)
1
2
3
4
5
|
[13:37][Majora][~]$ awless list buckets --aws-region=eu-west-2
| ID ▲ | GRANTS | CREATED |
|----------------------|-------------------------------------------------------------------------------------|----------|
| zoph-bucket-xxx | FULL_CONTROL[user:1b7d95b8fef668e805xxxaa0d6dfea0065a93cb14f29b2fc1cc9137d0c2db35e] | 2 months |
| | READ[group:http://acs.amazonaws.com/groups/global/AllUsers] | |
|
Hands on#
Let’s stop a simple instance:
Then, revert this change:
SSH access to your instances is like Magic 🎉
Get detailed information about your instance:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
[13:37][Majora][~]$ awless show i-0402fcfe2ad45c675
| PROPERTY ▲ | VALUE |
|-------------------|---------------------|
| Architecture | x86_64 |
| Hypervisor | xen |
| ID | i-0402fcfe2ad45c675 |
| Image | ami-d38ecea0 |
| KeyPair | myCPFreeTier |
| NetworkInterfaces | [eni-eadd92b9] |
| Private IP | 172.31.44.109 |
| RootDevice | /dev/sda1 |
| RootDeviceType | ebs |
| SecurityGroups | [sg-74cb670d] |
| State | stopped |
| Subnet | subnet-6399db3b |
| Type | t2.micro |
| Uptime | 5 weeks |
| Vpc | vpc-d85163bc |
| Zone | eu-west-1a |
# Relations:
eu-west-1[region]
↳ vpc-d85163bc[vpc]
↳ subnet-6399db3b[subnet]
↳ i-0402fcfe2ad45c675[instance]
Depending on: myCPFreeTier[keypair], @FreeBSD 11-11-0-RELEASE-AutogenByAWSMP-[securitygroup], vol-0c56ec363f41e8089[volume]
|
Did you notice the Relations
section ? Awesome! 👍
Using templates#
In this example, I’m running an awless template to setup a WordPress blog in HA from official awless-templates repository
First, list subnets and VPC in your region, answer questions with subnet for instances, and subnets for ELB.
Then your VPC name (use autocompletion)
Running template
And here we go 👏, your Wordpress blog is now up and running
Conclusion#
I think this CLI is clearly impressive despite alpha/beta version, we will need to keep an eye on this development, don’t hesitate to put a star ⭐ on Github or contribute to this project, and thanks, Henri and his great team!
That’s all folks!
zoph.