Этот пост блога будет охватывать развертывание инфраструктуры на AWS, используя облачность в сочетании с Azure DEVOPS.
Вы можете спросить, почему? Есть блестящие кодовые семейные инструменты/решения/услуги/услуги, доступные на AWS. Более того, если не насущный набор, который уже доступен в лучшем облаке;) Вы можете забрать что-то еще.
Ответ довольно прост — я был вынужден использовать его:). Я прыгнул в проект с несколькими облаками, где команда уже сильно использовала Azure DEVOPS, поэтому не было возможности представить еще один инструмент CI/CD — я должен был выровнять. В этом сообщении я хочу поделиться своим опытом и написать этот «быстрый запуск» руководства о том, как настроить среду, чтобы начать развертывание вашей инфраструктуры AWS, используя шаблоны облачных дел. Может быть, вы находитесь в том же положении, что и я.
Если у вас уже есть проект Azure DEVOPS, вы можете пропустить эту часть, но если нет, пожалуйста, войдете в инструмент и создайте новый проект, как на рисунке ниже. Поместите название проекта и значимое описание. Вы также можете настроить дополнительные параметры, такие как видимость вашего проекта (Public/Private) и контроль версий.
После исходного создания проекта вы должны создать репозиторий кода для вашего проекта:
Следующим шагом является создание и настройка трубопровода:
Вы должны решить, где ваш код будет храниться. В нашем случае это будет вариант «Azure Reppos Git»:
Подберите свой репозиторий CODE, созданный на предыдущем шаге:
На следующем экране вы можете решить создать новый файл YAML-трубопровода или выбрать существующий из вашего репозитория кода. В этом примере я выбираю первый вариант:
На последнем экране просмотрите новый созданный файл YAML трубопровода и нажмите кнопку Сохранить и запустить:
Важно: .. Вы можете в конечном итоге с аналогичным сообщением об ошибке: Никакого размещенного параллелизма не было куплено или предоставлено. Чтобы запросить бесплатный грант параллелизма, пожалуйста, заполните следующую форму https://aka.ms/azpipelines-parallish-Request
Это применимо только для новых учетных записей. Вы должны посетить ссылку по ошибке и отправить форму запроса, где вы должны предоставить свое имя, адрес электронной почты и вашу организацию организации Azure Devops:
Причина этого заключается в следующем:
За последние несколько месяцев ситуация значительно хуже, с высоким процентом новых публичных проектов в Azure DEVOPS используются для крипто-добычи и других мероприятий, которые мы классифицируем как оскорбительные. Помимо увеличения количества энергии из команды, это ставит наши размещенные бассейны агента в соответствии с стрессом и ухудшает опыт всех наших пользователей — как открытый источник и оплачиваемый.
После успешного создания трубопровода вы должны увидеть аналогичный вид:
На текущем этапе наша конфигурация проекта не позволяет нам работать с услугами AWS. Чтобы сделать эту работу, нам нужно установить AWS Toolkit для расширения Azure DEVOPS. Это расширение добавит задачи, чтобы мы могли работать с AWS Services, такие как:
- Amazon S3.
- AWS Эластичный Beanstalk
- AWS Эластичный реестр контейнера
- AWS CODDEDOWLED
- AWS LAMBDA
- AWS CloudFormation
- Amazon Simple Queue Service
- Amazon простое уведомление службы
- AWS Systems Manager
- AWS Secrets Manager
- AWS CLI
В этой главе я хотел бы сосредоточиться только на необходимых шагах, чтобы сделать эту работу, но если вы хотите узнать больше об этой инструментарии, пожалуйста, посетите Официальные документы AWS.
Чтобы установить инструментарий, вам нужно посетить сайт https://marketplace.visualstudio.com/itema??iteMam=AmazonWebservices.aws-vsts-tools и нажмите кнопку «Получить его бесплатно»:
На следующем экране выберите свою организацию и нажмите кнопку «Установить»:
В вашем режиме редактирования вашего трубопровода на правой части у вас есть панель «Задачи». Попробуйте отфильтровать его, набрав «AWS». Теперь вы должны увидеть дополнительные строительные блоки, связанные с услугами AWS, которые вы можете использовать в конфигурации трубопровода.
На данный момент у нас есть Организация DEVOPS, репозиторий кода и несколько стартовых трубопроводов. Нам все еще нужна сервисная связь между Azure DEVOPS и нашей учетной записью AWS, где мы будем развернуть нашу инфраструктуру. Для этого мы можем создать пользователь IAM с включенным программным доступом. Обратите внимание, что сервисное соединение ожидает долговечных учетных данных AWS, состоящих из пары ключа доступа и секретной ключей. Вы также можете определить доступов на получение ролей, чтобы обладать доступом.
Перейдите к «Настройки проекта», расположенные на нижней левой стороне экрана, рядом с «трубопроводами-> сервисными соединениями», и нажмите «Создать сервисное соединение». Новая панель на правой стороне должна всплыть. Выберите «AWS» и нажмите «Далее»:
На следующем экране предоставьте детали подключения. Минимум является доступом идентификатора ключа и секретного ключа доступа вашего пользователя IAM, но, как уже упоминалось ранее, вы могли бы также использовать учетные данные ролей. Когда закончите, нажмите «Сохранить»:
Теперь пришло время редактировать Azure-Pipelines.yml
Файл для наших развертываний обряда. Вы можете использовать веб-интерфейс и задачи, добавленные расширением AWS Toolkit, например, встроенные блоки или редактирование его с помощью редактора кода по вашему выбору (например, VS Code), если вы знаете синтаксис.
Я создам две задачи:
- Загрузить шаблон CloudFation в ведре S3
- Обновление/Создание стопки для развертывания инфраструктуры
Код для первой части:
trigger: - master pool: vmImage: ubuntu-latest steps: - task: S3Upload@1 inputs: awsCredentials: 'AWS' regionName: 'eu-west-1' bucketName: 'bolewski-cfn' sourceFolder: 'source' globExpressions: '**' targetFolder: 'AWSCommunityBuilders' createBucket: true
Общие поля: триггер
Определяет, какие ветви вызывают бегущую сборку — в нашем случае «мастер» Бассейн
Agent Pool для использования — я использую один «Ubuntu-Neighle» Шаги
Вот раздел, где расположены наши определения задач
Для задачи загрузки S3: AWScredentials
Учетные данные, которые мы создали для сервисного подключения региональная область
Регион нашего ведра S3, где мы хотим загрузить наш шаблон Cloduformation Bucketname
Наше целевое имя ведра S3 S3 SSOLDFOLDER
Из какой папки в нашем репозитории кода мы хотим переместить файлы Глобоксписи
В основном просто шаблоны имени файла Tradesfolder
Префикс (папка) на нашем ведре S3, где мы хотим загружать файлы Createbucket
Если ведро не существует, мы должны создать это или нет
Есть, конечно, больше вариантов, но я настоятельно рекомендую вам исследовать их самостоятельно.
Код для второй задачи:
- task: CloudFormationCreateOrUpdateStack@1 inputs: awsCredentials: 'AWS' regionName: 'eu-west-1' stackName: 'AzureDevOpsDemo' templateSource: 's3' s3BucketName: 'bolewski-cfn' s3ObjectKey: 'AWSCommunityBuilders/network.yml'
AWScredentials
Учетные данные, которые мы создали для сервисного подключения региональная область
регион, где мы хотим развернуть наш шаблон деформации StackName
Имя стека облака Templatesource
Расположение источника для нашего шаблона в этом случае это ведро S3 S3Bucketname
S3 Ведро имя S3Objectkey
Расположение нашего шаблона в ведре S3
После некоторых твиков окончательный код выглядит ниже:
trigger: - master pool: vmImage: ubuntu-latest variables: credentials: 'AWS' region: 'eu-west-1' bucket: 'bolewski-cfn' steps: - task: S3Upload@1 inputs: awsCredentials: $(credentials) regionName: $(region) bucketName: $(bucket) sourceFolder: 'source' globExpressions: '**' targetFolder: 'AWSCommunityBuilders' createBucket: true - task: CloudFormationCreateOrUpdateStack@1 inputs: awsCredentials: $(credentials) regionName: $(region) stackName: 'AzureDevOpsDemo' templateSource: 's3' s3BucketName: $(bucket) s3ObjectKey: 'AWSCommunityBuilders/network.yml'
И результаты:
Как видите, развертывание шаблонов облачных деформаций возможно даже с инструментами, предоставляемыми поставщиком облака конкурента. Если вы застряли с инструментами, которые вам не нравятся, не паникуйте, всегда есть решение ;). Я очень поощряю вас играть с ним самостоятельно, потому что ничто не может заменить практический опыт. Это был очень простой пример сборки с нуля, но я надеюсь, что это полезно для вас.
Если у вас есть какие-либо отзывы или вопрос, пожалуйста, поставьте комментарий или бросьте мне сообщение.
Оригинал: «https://dev.to/aws-builders/provisioning-infrastructure-on-aws-using-azure-devops-3g75»