Awless — мощная альтернативная CLI-утилита для работы с сервисами AWS



Все пользователи облачных сервисов Amazon давно знают про родной консольный инструмент для работы с ними — aws-cli. Но оказалось, что далеко не всем его достаточно: по этой причине компания WALLIX выпустила альтернативное и более функциональное решение под названием awless.

Исходный код awless написан на языке Go (использует AWS Go SDK) и опубликован на GitHub под свободной лицензией (Apache License 2.0). Текущая версия awless — 0.1.0. Поддерживаются операционные системы GNU/Linux, Mac OS X и Windows. Что же позволяет эта утилита?

Возможности


Awless поддерживает работу со следующими сервисами/возможностями AWS:


Одной из главных особенностей утилиты является вывод в разные форматы: как в human-readable (таблицы, совместимые с разметкой Markdown), так и в машинные (CSV, TSV, JSON), что обеспечит удобство работы с данными в скриптах, использующих awless. Если же вы будете взаимодействовать с инструментом вручную, другая приятная опция — автодополнение команд (поддерживаются оболочки Bash и Zsh — как активировать, см. в выводе awless completion).

Ещё одна интересная возможность awless — движок шаблонов для команд, позволяющий создавать целые наборы операций, выполняемых в AWS (и запускаемых однострочной командой). Примером может служить уже встроенный в awless шаблон для создания нового экземпляра EC2:

$ awless create instance subnet=subnet-356d517f image=ami-70edb016 type=t2.micro

Особенностью такой команды является передача параметров в виде ключа-значения, которые используются для выполнения дополнительных операций (в данном случае — подсеть и образ AMI для запуска в новом экземпляре).

Среди прочих фич awless:


Установка


Установка awless сводится к выполнению команды:

$ curl https://raw.githubusercontent.com/wallix/awless/master/getawless.sh | bash

… или (при наличии установленного Go):

$ go get -u github.com/wallix/awless

Кроме того, готовые архивы с awless для разных платформ доступны для скачивания на странице с релизами.

Примеры использования awless


Разработчики подготовили классное видео, демонстрирующее работу с утилитой. Однако… в нём используется формат анимированного PNG — APNG, поэтому для просмотра в Chrome понадобится последняя версия 59 или специальное дополнение, а поскольку очередной его просмотр в Firefox привёл к неадекватному потреблению памяти, оставлю это видео ссылкой вместо встраивания в пост.

Примеры конкретных операций (взяты из документации и встроенной справки):


Заключение


Количество звёзд awless на GitHub приближается к 3 тысячам, а это явный индикатор того, что подобного инструмента ждали. У проекта есть wiki, в которой можно получить больше информации по его установке и использованию. Кроме того, у всех команд есть достаточно подробная встроенная справка — флаг -h (например, awless create instance -h).

P.S.


Читайте также в нашем блоге:

@shurup
07.06.2017 12:34 UTC
Первоисточник