Развертывание на нескольких производственных серверах
У нас есть основной репозиторий на основе Gitlab CD/CI. Теперь, когда мы выросли, нам было трудно обновлять каждое из приложений наших клиентов с помощью автоматического развертывания с помощью Git.
Теперь мы ищем решение, когда пройдены этапы производства и пройдены тесты, после чего все наши клиенты получают самое последнее развертывание и автоматически получают обновления. (Продолжение доставки)
В Gitlab есть развертывание для производства, но это касается отдельного производства, мы хотим продублировать эти шаги для каждого зеркала.
2 ответа
Этап развертывания Gitlab-CI может иметь несколько сред, для каждой из которых вы можете установить автоматическое / ручное развертывание.
Пример: просто измените постановку на customer1, производство на customer2 и добавьте столько, сколько вам нужно.
stages:
- test
- build
- deploy
test:
stage: test
script: echo "Running tests"
build:
stage: build
script: echo "Building the app"
deploy_staging:
stage: deploy
script:
- echo "Deploy to staging server"
environment:
name: staging
url: https://staging.example.com
only:
- master
deploy_prod:
stage: deploy
script:
- echo "Deploy to production server"
environment:
name: production
url: https://example.com
when: manual
only:
- master
Другим решением было бы автоматическое обновление приложений, если у вас нет доступа к средам ваших клиентов.
Также ознакомьтесь со Spinnaker, который, кажется, специально для CD.
Вы можете проверить DeployHQ. Он поддерживает развертывание на неограниченное количество серверов одновременно.