Работа с aws s3 и terraform в unix/linux

Работа с 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» подошла к завершению.

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Мой редактор ОС
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: