- PVSM.RU - https://www.pvsm.ru -
Все пользователи облачных сервисов Amazon давно знают про родной консольный инструмент для работы с ними — aws-cli. Но оказалось, что далеко не всем его достаточно: по этой причине компания WALLIX выпустила альтернативное и более функциональное решение под названием awless [1].
Исходный код 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 log
);awless revert
с идентификатором операции из журнала);awless ssh
);awless sync
для локального хранения данных).Установка awless сводится к выполнению команды:
$ curl https://raw.githubusercontent.com/wallix/awless/master/getawless.sh | bash
… или (при наличии установленного Go):
$ go get -u github.com/wallix/awless
Кроме того, готовые архивы с awless для разных платформ доступны для скачивания на странице с релизами [3].
Разработчики подготовили классное видео, демонстрирующее работу с утилитой. Однако… в нём используется формат анимированного PNG — APNG, поэтому для просмотра в Chrome понадобится последняя версия 59 или специальное дополнение [4], а поскольку очередной его просмотр в Firefox привёл к неадекватному потреблению памяти, оставлю это видео ссылкой [5] вместо встраивания в пост.
Примеры конкретных операций (взяты из документации [6] и встроенной справки):
$ awless list instances --sort uptime
$ awless show jsmith
$ awless create instance name=my_machine image=ami-3f1bd150 keypair={keypair.name}
subnet={main.subnet} securitygroup={securitygroup}
userdata=https://gist.github.com/simcap/360dffae4c6d76ab0e89621dd824a244
$ awless attach policy user=jsmith arn=arn:aws:iam::aws:policy/AmazonEC2FullAccess
$ awless create s3object bucket=my-existing-bucket file=./todolist.txt
$ awless run repo:instance_ssh
Please specify (Ctrl+C to quit):
instance.name ? my-new-instance-name
instance.subnet ? @my-existing-subnet
instance.vpc ? @my-existing-vpc
keypair.name ? my-new-keyname
$ awless ssh my-new-instance-name
Количество звёзд awless на GitHub приближается к 3 тысячам, а это явный индикатор того, что подобного инструмента ждали. У проекта есть wiki [7], в которой можно получить больше информации по его установке и использованию. Кроме того, у всех команд есть достаточно подробная встроенная справка — флаг -h
(например, awless create instance -h
).
Автор: shurup
Источник [8]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/open-source/257323
Ссылки в тексте:
[1] awless: https://github.com/wallix/awless
[2] AWS userdata: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html
[3] странице с релизами: https://github.com/wallix/awless/releases/tag/v0.1.0
[4] специальное дополнение: https://chrome.google.com/webstore/detail/apng/ehkepjiconegkhpodgoaeamnpckdbblp?hl=en
[5] ссылкой: https://raw.githubusercontent.com/wiki/wallix/awless/apng/awless-demo.png
[6] документации: https://github.com/wallix/awless/wiki/Examples
[7] wiki: https://github.com/wallix/awless/wiki
[8] Источник: https://habrahabr.ru/post/330398/
Нажмите здесь для печати.