Рубрики
Uncategorized

Развертывание облака AWS через Azure DevOps

Azure DEVOPS — это платформа для запуска и развертывания трубопроводов для ваших приложений. Это р … Помечено с AWS, Azure, DevOps.

Azure DevOps Является платформой для запуска и развертывания трубопроводов для ваших приложений. Это недавно ребрендинг до Azure DevOps , просто прыгать на группу Buzzword. По сути, каждая другая система сборки, дает вам декларативный трубопровод YAML DSL и UI, если вы хотите создать свои трубопроводы CICD, щелкнув и перетащите. Это не так, как популярно как некоторые другие большие серверы сборки, такие как Дженкинс или Circleci, поэтому не хватает довольно немного с точки зрения документации, учебников и руководств.

Я недавно помог кому-то развернуть инфраструктуру AWS, используя Azure DevOps, странно Я знаю. Я изначально запутался по поводу выбора, но после проверки Azure DevOps AWS Plugin Я вроде понял, почему небольшой магазин выбрал бы его инструмент CICD. Azure Devops следует за Дженкинсом в том, что он только обеспечивает Несколько основных модулей развертывания (называется Задачи в Azure DevOps) из коробки, как сценарии Bash, NPM сборки и сборки Maven. Остальная часть своей силы исходит из богатой библиотеки плагинов, таких как плагин AWS.

Yaml dsl.

YAML DSL настраивает, какие задания для запуска и на каком виде серверов. Он также выставляет некоторые конфиски по трубопроводу, как то, что делать, когда работа не удалась, продолжаем ли мы или мы бросаем. Ниже приведен то, что я написал за мой проект, минимальный, но проделана работа:

jobs:
- job: MyJob
  pool:
    vmImage: 'ubuntu-16.04'
  displayName: My First Job
  continueOnError: true
  workspace:
    clean: outputs
  steps:
......

Шаги: Запускает список модулей для запуска.

AWS учетные данные

Учетные данные AWS могут быть настроены через интерфейс UI ( Настройки проекта -> Сервисные связи -> Добавить новый сервисный соединение AWS). Будьте предусмотрены только в том, что сервисные соединения только загружаются во время инициирования трубопровода, любые новые соединения, добавленные после создания трубопровода, не будут загружены автоматически. Таким образом, вам придется удалить и повторно создать свой конвейер, чтобы использовать новые соединения. Я объяснил это в Выпуск GitHub Это говорит об этом оговорке. Похоже, что в этот вопрос Итак, я просто поделившись на уроках повсюду.

Модуль облака

Плагин AWS поставляется с несколькими красивыми Полезные модули , как Обновление/Создание , Лямбда развертывает и S3 загрузка Отказ К сожалению, я не думаю, что они опубликовали документацию для нее, поэтому я должен был посмотреть на их Исходный код найти документы. Я использовал только Обновление обновления/Создание И другой модуль называется AWS CLI Отказ Модуль Cloudbationation значительно сохранил мое время, потому что мне не пришлось обрабатывать идентификацию нескольких обновлений после начального создания, модуль знает обновления вместо создания, если стек CloudFation уже создан.

  steps:
  - task: CloudFormationCreateOrUpdateStack@1
    inputs:
      awsCredentials: 'aws_tokens'
      regionName: 'us-east-2'
      stackName: 'IAMRoleStack'
      templateFile: templates/iam_role.json
      capabilityIAM: 'true'
      capabilityNamedIAM: 'true'

Вот что я использовал для развертывания своего роли IAM, AWScredentials , региональная область требуются для всех модулей AWS, а stackname. и TemplateFile Требуются для всех модулей облака. Последние два имеют только для этого модуля.

AWS CLI модуль (или нет)

Модуль AWS CLI дал мне ложные надежды, оказалось, что вам все равно придется установить AWS CLI, чтобы использовать модуль LOL. Я сначала должен был установить Seturgools. и рулевое колесо , Ага, Пип Зависимости даже не приходят бесплатно. Затем я должен установить его в моем пользовательском пространстве, и мне потребовалось некоторое время найти, где установлен CLI, потому что он не добавлен на мой путь. Поэтому я только что использовал модуль скрипта Shell Shell, который, похоже, делает точным, что делает модуль CLI AWS, кроме проще для записи.

- script: |
      python -m pip install --upgrade pip==9.0.3 setuptools wheel
      pip install awscli --user
    displayName: 'Install tools'
  - task: AWSShellScript@1
    inputs:
      awsCredentials: 'aws_tokens'
      regionName: 'us-east-2'
      scriptType: 'inline'
      inlineScript: |
        eval $(/home/vsts/.local/bin/aws ecr get-login --no-include-email)

Оригинал: «https://dev.to/li_chastina/deploying-to-aws-cloud-through-azure-devops-24kf»