Развертывание приложения на Elastic Beanstalk с помощью CircleCi 2.1 и TravisCI


Тестирование и развертывание на Amazon Elastic Beanstalk с помощью CircleCi 2.1


После поиска в интернете простого способа развертывания моего приложения на Elastic Beanstalk с помощью CircleCI, я решил, что смогу помочь этим постом другим, пытающимся сделать то же самое. Проверьте ryansimms на github, так как этот метод основан на его методе для CircleCI 2.0, который был моей отправной точкой, чтобы заставить его работать.

Сначала настройте пользователя AWS IAM, выполнив следующие шаги (рекомендуется создать уникального пользователя для CircleCI)

  • На сервисах AWS найдите IAM
  • Выберите Users (или User Groups, если вы хотите сгруппировать пользователей развертывания вместе, например, TravisCI и CircleCI).
  • В разделе «Пользователи» нажмите на «Добавить пользователя».
  • Задайте имя пользователя и отметьте только ключ доступа — программный доступ в качестве типа доступа.
  • Нажмите на next (Set permissions), выберите ‘Attach existing policies directly’, затем найдите и выберите AdministratorAccess-AWSElasticBeanstalk, and AmazonS3FullAccess.Note: Раньше это был просто AWSElasticBeanstalkFullAccess, но с тех пор это устарело>Убедитесь, что скопировали Access-Key-ID пользователя и Secret-Access-key в безопасное место.
  • Нажмите на next(Tags), next(Review) и, наконец, ‘Create User’.

Настройка приложения Elastic Beanstalk

  • На сервисах AWS найдите Elastic Beanstalk
  • ‘Create a New Application’ и дайте ему имя вашего приложения.
  • Создайте новую среду и назовите ее в соответствии с именем ветки git, в которой она будет размещена, например. BRANCHNAME-my-application Я делаю так, поскольку у меня есть staging branch и master branch, поэтому в нашей конфигурации EB мы заменим BRANCHNAME переменной окружения $CIRCLE_BRANCH, предоставленной CircleCi, чтобы при развертывании, например, staging branch, она знала, что нужно развернуть в окружение staging-my-application на Elastic Beanstalk.
  • Подождите, пока окружение заработает. После этого вы сможете просмотреть образец приложения по адресу [имя окружения].[регион приложения].elasticbeanstalk.com.

Добавление переменных окружения пользователя развертывания в CircleCi

В CircleCI перейдите в раздел

  • Project Settings > Environment Variables добавьте эти ключи:и их значенияAWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY

Добавьте конфиг .elasticbeanstalk/config.yml в код приложения

  • Создайте эту папку в корневом каталоге кода вашего приложения
  • Обновите значения config.yml с помощью сниппета (в соответствии с вашей настройкой).
branch-defaults:
  master:
    environment: your-app-name-$CIRCLECI_BRANCH
  develop:
    environment:  your-app-name-$CIRCLECI_BRANCH
global:
  application_name:  your-app-name
  default_platform: 64bit Amazon Linux 2/3.4.16
  default_region: your-app-region (e.g. us-east-1)
  sc: git
Вход в полноэкранный режим Выйти из полноэкранного режима

Примечание: Убедитесь, что application_name — это именно то, как вы назвали свое приложение в Elastic Beanstalk, когда выполняли шаг ‘Create New Application’.

Также обратите внимание: не задавайте здесь значение profile:, профиль будет установлен на основе переменных окружения AWS_ACCESS_KEY_ID и AWS_SECRET_ACCESS_KEY, которые вы установили.

Обновите ваш .circleci/config.yml

Как показано ниже и в соответствии с вашими настройками

version: 2.1
jobs:
  # add commands to run your test if you have them otherwise skip this
  test-me:
    docker:
      - image: cimg/node:14.19
    steps:
      - run: my test script
  # deployment starts here
  deploy-me:
      docker:
        - image: cimg/python:3.10
      steps:
        - checkout
        - run: pip3 --version
        - run:
            working_directory: /
            name: installing ebcli
            command: pip3 install awsebcli --upgrade --user
        - run: eb --version
        - run:
            name: deploying with awsebcli
            command: eb deploy  your-app-name-$CIRCLE_BRANCH
workflows:
  test-then-deploy:
    jobs:
      - test-me
      - deploy-me:
          context: aws-creds
          filters:
            branches:
              only:
                - master
                - staging
          requires:
            - testme
Войдите в полноэкранный режим Выйти из полноэкранного режима

Обратите внимание: имя вашего приложения должно быть таким же, как на Elastic Beanstalk.

Теперь мы ожидаем

  • Commit, Push и ждем окончания работы CircleCi. Если все идет хорошо в CircleCI, вы должны увидеть обновление вашего приложения на приборной панели Elastic Beanstalk.

Дополнительно, -только для пользователей TravisCI

Добавление этого шага deploy в ваш файл .travis.yml должно в идеале сработать

deploy:
   provider: elasticbeanstalk
   region: "us-east-1"
   app: "your-app-name"
   env: " your-app-environment-name"
   bucket: elasticbeanstalk-us-east-1-398485943999
   bucket_path: "your-app-name"
   on:
     branch: master
   access_key_id: $AWS_ACCESS_ID
   secret_access_key: $AWS_SECRET_KEY
Вход в полноэкранный режим Выйти из полноэкранного режима

Примечание: Замените us-east-1 регионом вашего приложения.
Примечание2: Переменные окружения AWS_ACCESS_ID и AWS_SECRET_KEY должны быть настроены в вашей панели TravisCI.

Исправления и предложения по улучшению практики, конечно же, будут приветствоваться

Оцените статью
Procodings.ru
Добавить комментарий