Как использовать Nant / TeamCity для развертывания через DMZ? - PullRequest
2 голосов
/ 05 декабря 2008

У меня есть сервер сборки внутри нашего домена (и это должно быть потому, что он также общается с другими ящиками в домене) и веб-сервер, который находится в DMZ.

Как часть наших скриптов сборки, я хотел бы развернуть веб-сайты на веб-сервере в DMZ, используя задачу копирования Nant. Проблема в том, что Nant вызывается из TeamCity, который запускается под системной учетной записью на сервере сборки, и я не могу найти способ предоставить системной учетной записи сервера сборки доступ к каталогам веб-сервера DMZ. (В любом случае, это, наверное, не очень хорошая идея).

Есть ли какой-либо способ сказать Nant запустить определенную задачу под другим пользователем Windows, или есть другое решение моей проблемы?

Редактировать: Еще одно ограничение, под которым я работаю, заключается в том, что я не могу создавать новые учетные записи домена (по крайней мере, без прохождения процедуры утверждения). Я могу создавать учетные записи локальных компьютеров, но в этом случае не похоже, что runas будет работать через DMZ.

Ответы [ 2 ]

2 голосов
/ 07 декабря 2008

Варианты пары могут быть:

  1. Используйте Simple Command Runner , чтобы выполнить что-то вроде runas , указав nant.exe, запущенный под другой учетной записью пользователя.
  2. Изменить учетную запись, под которой работает сервер TeamCity; как ограниченный привилегированный пользователь, который имеет доступ к DMZ.
  3. Попытка использовать задачу <scp> (безопасное копирование), предоставленную NAntContrib .
  4. Используйте задачу nant <exec> для вызова программы ftp, которая помещает файлы в DMZ.

Надеюсь, это немного поможет. Удачи!

0 голосов
/ 08 декабря 2008

вы можете использовать удаленное взаимодействие powershell для извлечения релизов с сервера сборки. Сервер будет менее уязвим, чем если бы вы использовали push-релиз как копию файла.

Я делаю это с помощью специального приложения, которое входит в teamcity и загружает артефакты, а затем развертывает их с использованием powershell локально.

...