Jenkins развертывает артефакт на том же сервере - PullRequest
1 голос
/ 15 апреля 2019

Я пытаюсь создать Jenkins Pipeline или группу itens, чтобы помочь мне создать собственный CI / CD для моих проектов, и сейчас я застрял в части развертывания, я хочу развернуть на том же сервере, что и мойДженкинс работает (Windows Server / IIS).Я также хотел бы знать, как выполнить развертывание на другом сервере (Windows Server / IIS), этот второй будет моей рабочей средой.

Мне удалось клонировать, собрать и заархивировать, используя два подхода с Jenkins:

  • Конвейеры Мне удалось создать конвейер, который будет клонировать мой проект, выполнить мою сборку и затем заархивировать артефакты из моей сборки.Проблема в том, как мне сейчас развернуть артефакт?

Это мой конвейерный скрипт

node {
   stage('git clone') {
      // Get some code from a GitHub repository
      git 'my-git-url'
   }
   stage('npm install') {
      bat label: 'npm install',
      script: '''cd app
        npm install'''
   }
   stage('gulp install') {
      bat label: 'gulp install',
      script: '''cd app
      npm i gulp'''
   }
   stage('gulp production') {
      bat label: 'gulp production',
      script: '''cd app
      gulp production'''
   }
   stage('create artifact') {
      archiveArtifacts artifacts: 'app/dist/**',
      onlyIfSuccessful: true
   }
}
  • Проекты фристайла Мне удалось создать проект, который будет создаватьа затем заархивируйте артефакт, используя шаг Execute shell build и действия Archive the artifacts post-build.Как я могу развернуть артефакт, используя этот подход?В этом случае я пытаюсь запустить второй проект вольным стилем, чтобы выполнить развертывание.

1 Ответ

0 голосов
/ 17 апреля 2019

По вашему вопросу: «Я хочу развернуть на том же сервере, на котором работает мой jenkins (Windows Server / IIS)» .. и комментарии, я предложу несколько подходов.

Windows

Использование окон в качестве операционной системы для производственных сред не рекомендуется. Linux - единственный и лучший выбор.

IIS

Я не рекомендовал IIS для развертывания статических активов. Вам нужно что-то более легкое и масштабируемое. Вы можете использовать:

Развертывание на IIS

Развертывание статических ресурсов в IIS - это просто копирование и вставка файлов в какую-либо папку и указание конфигураций IIS в этой папке:

Базовое развертывание на IIS с использованием Jenkins

После ваших команд сборки вам просто нужно скопировать результаты сборки (css.js.html.etc) и вставить в какую-нибудь папку, например c: // webapps / my-app (предварительно настроенный в IIS).

Вы можете сделать это, используя простое выполнение оболочки в проекте со свободным стилем или конвейерный скрипт, такой как https://stackoverflow.com/a/53159387/3957754

Вы можете использовать этот подход для развертывания ваших статических ресурсов на том же сервере, на котором работает ваш jenkins.

Расширенное развертывание на IIS с использованием Jenkins

У Microsoft есть инструмент под названием MSDeploy . В основном это инструмент командной строки для развертывания приложений на remote IIS:

msdeploy.exe -verb:sync -source:contentPath="" -dest:contentPath=""

Подробнее здесь:

Примечание: Нельзя запускать команды развертывания MS, которые общаются со службой MSDeploy на одном компьютере

Агент Дженкинса

Агент Jenkins - это приложение, которое запускается на удаленном сервере, а не там, где работает главный узел jenkins.

Ваш мастер jenkins может использовать агент в удаленном или локальном хосте IIS и выполнять задания jenkins с копированием и вставкой подход.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...