2017-02-21 39 views
0

DevOps сконфигурировал ведомую машину Windows как машину сборки для нашей команды, и я заметил, что он установил TFS-плагин в мастер Jenkins, но не подчиненную машину. Однако после этого мы получаем исходный код в подчиненном устройстве. Интересно, как работает рабочий процесс загрузки? :Как мастер Jenkins инструктирует подчиненный для загрузки источника из TFS

  • 1) Мастер загружает исходный код, а затем передает код на подчиненный машина?
  • 2) или после того, как Master подключился к серверу TFS, он просто инструктирует ведомую машину для ее загрузки с сервера TFS напрямую?

Пожалуйста, объясните немного механизм. Если это 2), то то, что установлено в slave, можно загрузить с TFS.

ответ

0

VCS плагины обычно работают таким образом:

  1. Master настроен на использование некоторых VCS и подготовлены с некоторыми настройками
  2. ведомых имеет некоторые двоичные файлы, которые способны выполнить загрузки команды

После начало сборки, большинство шагов будут выполняться на подчиненном устройстве через свои двоичные файлы, включая загрузку исходного кода. Для этого требуется, чтобы slave имел двоичный файл VCS (например, git) и доступ к целевому репозиторию (для git это может быть ключ ssh).

У меня нет раба с TFS под рукой прямо сейчас, но процесс такой же. Я полагаю, что если вы проверите Console output сборки, вы увидите полный путь к двоичному файлу, который использовался для загрузки TFS где-то на самом верху.

Вот пример такого вывода для мерзавца:

Building remotely on slave01 in workspace /jenkins-workspace 
> /bin/git rev-parse --is-inside-work-tree # timeout=10 
Fetching changes from the remote Git repository 
> /bin/git config remote.origin.url [email protected]:ORG/repo.git # timeout=10 
+0

Следующий мой вывод, и я не могу сказать, кто (мастер или подчиненный) загружает его ------- Удаленное построение на BuildSlaveV1 (EUDCCESBUILDVM) (CES) в рабочей области C: \ J \ workspace \ CES_Team \ YuTest2 Запрос для удаленного набора изменений в '$/Client/000MSBuild' с 'D2017-02-21T19: 57: 56Z'
Результат запроса: Набор изменений # 32379 от пользователя "ADVENT \ yzheng" от '2017-02-21T19: 57: 41Z.
Список рабочих мест с http: //10.64.128.57: 8080/tfs/CES ... –

+0

Здесь нет ничего полезного. Возможно, плагин TFS не дает нам такого подробного вывода. – doz10us

0

Чтобы установить связь между Дженкинс и TFS, вам необходимо установить Team Foundation Server Plugin и настроить его в качестве this article состояний. Таким образом, Дженкинс может получить ресурсы от TFS.

Каждое подчиненное устройство запускает отдельную программу под названием «ведомый агент», ведомый агент и мастер Jenkins должны установить двунаправленную линию связи. Чтобы настроить ведомые устройства/узлы в Jenkins, вы можете обратиться к this article. Если все настройки введены правильно, подчиненная машина узла будет подключена к сети и будет взаимодействовать с мастером Jenkins.

+0

Я только что прочитал их. Как артикулярные состояния, после установки подключаемого модуля TFS (4.0), Jenkins master загружает исходные файлы с сервера TFS и отправляет их на ведомую машину. до 4.0, ведомому Jenkins нужно будет установить tf.exe и т. д., чтобы загрузить исходный файл. Если мое понимание правильное, то на самом деле установка TFS-плагина 4.0, мастер Jenkins сделает много загружаемой работы, раб просто выполнит строительную работу. Я на самом деле думал, что мастер Дженкинса не должен выполнять какую-либо фактическую загрузку, а просто делегировать подчиненному. –

+0

Ваше понимание верное. –