Работа с AWS Beanstalk через командную строку в Unix/Linux
Устанавливаем AWS CLI:
Открываем конфиг:
# vim ~/.aws/credentials
Прописываем ключи. Например:
aws_access_key_id = XXXXXXXXXXXXXXXXXXXXXXXXX aws_secret_access_key = YYYYYYYYYYYYYYYYYYYY
Где:
- Your_acc_name — Имя для аккаунта. Потом можно его использовать.
- aws_access_key_id — Ключик.
- aws_secret_access_key — Еще один ключик.
PS: Конечно можно заюзать утилиту для генерации аккаута, но я предпочитаю — именно такой способ и отредактировать файл.
Создание application-а в BeanStalk
Чтобы создать app в beanstalk-е, выполните:
$ aws elasticbeanstalk create-application --region=us-west-2 --application-name=test
Просмотр application-ы в BeanStalk
Чтобы просмотреть все созданные апликейшены в бинсталке, имеется команда:
$ aws elasticbeanstalk describe-applications
Если вывод большой, можно использовать фильтр, например:
$ aws elasticbeanstalk describe-applications | grep -E "test"
Удалить app можно так:
$ aws elasticbeanstalk delete-application --application-name test --region=us-west-2
Просмотр доступных стек-солюшенов в BeanStalk
Ищем необходимый стек:
$ aws elasticbeanstalk list-available-solution-stacks
Грепаем нужное:
$ aws elasticbeanstalk list-available-solution-stacks| grep -E "Docker"
Создание environment-а в BeanStalk
Аппликейшен готов, теперь стоит создать environment:
$aws elasticbeanstalk create-environment --application-name test --environment-name staging --solution-stack-name "64bit Amazon Linux 2018.03 v2.11.5 running Multi-container Docker 18.06.1-ce (Generic)" --region us-west-2
Или, нужные опции можно влить из файла:
$ aws elasticbeanstalk create-environment --application-name test \ --environment-name staging \ --solution-stack-name "64bit Amazon Linux 2018.03 v2.11.5 running Multi-container Docker 18.06.1-ce (Generic)" \ --option-settings file://options.json \ --region us-west-2
Просмотреть environment-ы в BeanStalk
Чтобы просмотреть environment-ы, выполните:
$ aws elasticbeanstalk describe-environments
Так же, можно использовать фильтры, если это необходимо.
Удаление environment-а в BeanStalk
Для удаления энвайромента, выполните:
$ aws elasticbeanstalk delete-environment --environment-name staging --region=us-west-2
Обновление environment-а в BeanStalk
Выполняем деплой до определенной версии:
$ aws elasticbeanstalk update-environment --application-name test \ --environment-name staging \ --version-label v1 --region us-west-2
PS: Создание версий будет ниже.
Создание application-version-ю в BeanStalk
Создаем новую версию приложения из комплекта приложений:
$ aws elasticbeanstalk create-application-version --application-name test \ --version-label v1 \ --source-bundle S3Bucket="some_s3_bucket_name",S3Key="deployment.zip" \ --auto-create-application \ --region us-west-2
Где:
- some_s3_bucket_name — Имя бакета где лежит зип-архив (deployment.zip).
- deployment.zip — Архив со всем необходимым для деплоя преложения (конфигы, настройки, код …).
Просмотр application-version-и в BeanStalk
Чтобы получить информацию о апликейшен-версиях, выполните:
$ aws elasticbeanstalk describe-application-versions
Чтобы получить помощь, выполните команду:
$ aws elasticbeanstalk help
Вот и все, статья «Работа с AWS Beanstalk через командную строку в Unix/Linux» завершена.
Работа с AWS CLI в Unix/Linux
После установки AWS CLI, нужно прописать ключики. Открываем:
# vim ~/.aws/credentials
И прописываем (пример):
aws_access_key_id = AKIAJCMNQGYHTIR2FIBQ aws_secret_access_key = hZ7JMx5NHGGVBNKLSompEyZmjp0jQ5Zv4H4RaX
PS: Так же, можно добавить регион (например):
region=us-east-1
Можно не открывать файл, а выполнить следующую команду:
$ aws configure
И нам предлагают ввести некоторые данные:
AWS Access Key ID : AWS_Access_Key_ID : AWS_Secret_Access_Key Default region name : Your_Region Default output format : output_format(json|text)
Они будут записаны в дефолтное значения ( в файле ~/.aws/config):
$ cat ~/.aws/config
Если у вас несколько профилей, вы можете настроить дополнительные именованные профили с помощью параметра —profile:
$ aws configure --profile user2 AWS Access Key ID : AKIAIKLLBJLBNBGJHJVJHAMPLE AWS Secret Access Key : je7MHLKGJKGJKHGHFGFHGEXAMPLEKEY Default region name : us-east-1 Default output format : text
Данная тема, довольно большая и я буду выкладывать постепенно новый материал.
- Работа с AWS AMI через командную строку в Unix/Linux
- Работа с AWS ELB через командную строку в Unix/Linux
- Работа с AWS S3 через командную строку в Unix/Linux
- Работа с AWS EC2 через командную строку в Unix/Linux
- Работа с AWS IAM через командную строку в Unix/Linux
- Другие темы будут, но попозже!
На этом, у меня все. Статья «Установка AWS CLI в Unix/Linux» завершена.
Установка AWS CLI в Unix/Linux
Сейчас я расскажу как можно установить AWS CLI на некоторые Unix/Linux ОС.
Для начала, устанавливаем PIP:
Переходим к установке.
Установка AWS CLI в CentOS/Fedora/RedHat
-===СПОСОБ 1- использовать PIP===-
Если у вас уже есть pip и поддерживаемая версия Python, вы можете установить CLI AWS с помощью следующей команды:
$ pip install --upgrade --user awscli
Чтобы обновить CLI AWS, запустите команду:
$ pip install --upgrade --user awscli
Чтобы удалить CLI AWS, используйте команду:
$ pip uninstall awscli
Чтобы узнать версию AWS CLI выполните:
$ aws --version
PS: Для python3 используйте pip3!
-===СПОСОБ 2- использовать easy_install===-
# easy_install awscli
-===СПОСОБ 3- использовать git репозиторий===-
$ cd /usr/local/src && git clone https://github.com/aws/aws-cli.git # cd aws-cli && python setup.py install
PS: Можно использовать python3!
Вот и все.
Установка AWS CLI в Debian/Ubuntu
-===СПОСОБ 1- использовать PIP===-
Если у вас уже есть pip и поддерживаемая версия Python, вы можете установить CLI AWS с помощью следующей команды:
$ pip install --upgrade --user awscli
Чтобы обновить CLI AWS, запустите команду:
$ pip install --upgrade --user awscli
Чтобы удалить CLI AWS, используйте команду:
$ pip uninstall awscli
Чтобы узнать версию AWS CLI выполните:
$ aws --version
PS: Для python3 используйте pip3!
-===СПОСОБ 2- использовать easy_install===-
# easy_install awscli
-===СПОСОБ 3- использовать git репозиторий===-
$ cd /usr/local/src && git clone https://github.com/aws/aws-cli.git # cd aws-cli && python setup.py install
PS: Можно использовать python3!
Вот и все.
Установка AWS CLI в Mac OS X
-===СПОСОБ 1===-
Если у вас уже есть pip и поддерживаемая версия Python, вы можете установить CLI AWS с помощью следующей команды:
$ pip install --upgrade --user awscli
Чтобы обновить CLI AWS, запустите команду:
$ pip install --upgrade --user awscli
Чтобы удалить CLI AWS, используйте команду:
$ pip uninstall awscli
Чтобы узнать версию AWS CLI выполните:
$ aws --version
PS: Для python3 используйте pip3!
Вот и все.
-===СПОСОБ 2===-
Устанавливаем HOMEBREW:
Можно выполнить поиск пакета:
$ brew search awscli
И выполняем установку:
$ brew install awscli
Вот и все.
-===СПОСОБ 3- использовать git репозиторий===-
$ cd /usr/local/src && git clone https://github.com/aws/aws-cli.git # cd aws-cli && python setup.py install
PS: Можно использовать python3!
Использование AWS с многофакторной аутентификацией (MFA) в Unix/Linux
Многие ставят MFA на свои учетные записи в AWS для более секурного использования. Типа, — супер секурно и все дела… Это правда, но MFA с AWScli в стандартной конфигурации, — не будет работать из-за того, что используется временные токены.
Я расскажу как можно обойти это дело и начать использовать AWS cli с MFA. Для начала, ставим питон (у меня используется python3). Ставим библиотеки:
# pip3 install boto3 aws-mfa
PS: Если используете питон2, то можно выполнить:
# pip install boto3 aws-mfa
и так, либы уже установлены, — осталось немного видоизменить конфиг-файл самого AWS. Открываем:
$ vim ~/.aws/credentials
Стандартный конфиг выглядит следующим образом:
aws_access_key_id = XXXXXXXXXXX aws_secret_access_key = YYYYYYYYYYYYYYYYYY region = us-east-1 aws_access_key_id = XXXXXXXXXXX aws_secret_access_key = YYYYYYYYYYYYYYYYYY
Приводим к виду:
aws_access_key_id = XXXXXXXXXXX aws_secret_access_key = YYYYYYYYYYYYYYYYYY region = us-east-1 aws_access_key_id = XXXXXXXXXXX aws_secret_access_key = YYYYYYYYYYYYYYYYYY region = us-east-1 aws_access_key_id = XXXXXXXXXXX aws_secret_access_key = YYYYYYYYYYYYYYYYYY aws_access_key_id = XXXXXXXXXXX aws_secret_access_key = YYYYYYYYYYYYYYYYYY
И так далее….. Суть уловили…
После чего, запускаем:
$ aws-mfa --duration 1800 --device arn:aws:iam::41316628489:mfa/captain --profile=LinuxNotes
Где:
- —duration 1800 — Время (Количество секунд), через которое будет сбрасыватся временные креденшелы.
- —device arn:aws:iam::41316628489:mfa/captain — Это MFA роль. Ее можно глянуть через веб-консоль.
- —profile=LinuxNotes — профиль, который прописали в ~/.aws/credentials
Для удобства использования, можно использовать переменные:
$ export MFA_DEVICE=arn:aws:iam::41316628489:mfa/captain $ export MFA_STS_DURATION=1800
И потом, просто вызвать:
$ aws-mfa --profile=LinuxNotes
PS: Так же, можно заекспортировать и профиль:
$ export AWS_PROFILE=LinuxNotes
После запуска данной команды, вас попросят ввести MFA. Мне надоело каждый раз доставать свой телефон и вводить значение, по этому — я написал скрипт на питоне:
# vim get_creds.py
Вот как он выглядит:
#!/usr/bin/env python3 # -*- coding: utf-8 -*- import configparser import argparse import pyotp def get_creds_from_acc_name(acc_name): db_file = '~/.aws/credentials' config = configparser.ConfigParser() config.sections() config.read(db_file) aws_access_key_id = config aws_secret_access_key = config region = config mfa_autorisation = config return aws_access_key_id, aws_secret_access_key, region, mfa_autorisation def generate_token(acc_name): account_creds = get_creds_from_acc_name(acc_name) totp = pyotp.TOTP(account_creds) print("Current OTP for %s:" % acc_name, totp.now()) # print (totp.verify(totp.now())) return generate_token def main(): parser = argparse.ArgumentParser() parser.add_argument('--acc', dest='account', help='Account name', default=None) results = parser.parse_args() ac_name = results.account generate_token(ac_name) if __name__ == '__main__': main()
Где нужно изменить:
- db_file — Это путь где лежит ваш .aws/credentials файл.
- Добавить значение для MFA в поле mfa_autorisation (нужно самому вставить) — в файле .aws/credentials.
После чего, можно использовать:
$ python3 get_creds.py --acc LinuxNotes Current OTP for LinuxNotes: 328868
После чего, можно использовать AWS CLI, например:
# aws ec2 describe-instances --region=us-east-1 --profile=LinuxNotes --query "Reservations[].Instances[].PrivateIpAddress[]" --instance-ids
Это немного облегчает жизнь. У меня на этом все и статья «Использование AWS с многофакторной аутентификацией (MFA) в Unix/Linux» подошла к завершению.