Возможно, чтобы несколько серверов TeamCity работали в одной коробке Windows с сервисами Windows.
В следующей процедуре предполагается, что вы хотите установить 3 экземпляра TeamCity с именами TeamCity1, TeamCity2 и TeamCity3 на порты 8080, 8081 и 8082 соответственно. Если вы измените какую-либо из этих деталей, убедитесь, что вы остаетесь последовательными с изменениями на протяжении всей процедуры. Каждый экземпляр ДОЛЖЕН работать под своей учетной записью Windows, чтобы эта процедура работала. Это было сделано с TeamCity 7.1, я не уверен, работает ли он с другими версиями.
Установите TeamCity, выберите «C: \ TeamCity1» в качестве папки назначения.
Снимите флажок с агента сборки (как службы Windows, так и ядра) - они будут установлены позже.
Снимите флажок Служба Windows для сервера, но оставьте флажок Основным.
Используйте «C: \ TeamCity1 \ TeamCityData \» в качестве каталога конфигурации.
Выберите уникальный порт для этого экземпляра. Я выбрал 8080, 8081 и 8082.
Повторите шаги 1-5 столько раз, сколько необходимо, изменив на TeamCity2, TeamCity3 и т. Д. И меняя порт каждый раз.
Перейдите в раздел «Управление компьютером» в разделе «Администрирование» и создайте 1 уникальную учетную запись пользователя Windows для каждой службы (т.е. TeamCity1, TeamCity2 и TeamCity3). Убедитесь, что срок действия паролей не истек. Пока убедитесь, что у каждого пользователя достаточно прав для входа в Windows.
Откройте командную строку с повышенными привилегиями, выбрав Все программы> Стандартные> Командная строка, щелкните правой кнопкой мыши и выберите «Запуск от имени администратора».
Запустите команды в конце этой процедуры для каждого экземпляра TeamCity, заменив число 1 на соответствующий экземпляр TeamCity.
Вам необходимо добавить «Вход в систему как сервис» для каждой учетной записи. Самый простой способ сделать это - открыть Сервисы из средств администрирования, щелкнуть правой кнопкой мыши каждый сервис, перейти на вкладку «Вход в систему», повторно ввести пароль в оба поля и нажать «Применить».
Выйдите из машины и войдите как «TeamCity1».
Перейдите в Панель управления> Учетные записи пользователей> Учетные записи пользователей> Изменить переменные среды.
Добавьте новую переменную пользователя, нажав кнопку Создать ... Назовите ее TEAMCITY_DATA_PATH со значением C: \ TeamCity1 \ TeamCityData.
Повторите шаги 11-13 для каждого экземпляра TeamCity.
Выйдите из системы и войдите в систему с учетной записью администратора.
Вернитесь в диалоговое окно переменных среды и удалите системную переменную (не пользовательскую) с именем TEAMCITY_DATA_PATH.
При желании измените разрешения для каждой учетной записи пользователя TeamCity, чтобы у них не было разрешения на вход в систему.
Откройте C: \ TeamCity1 \ conf \ server.xml и C: \ TeamCity1 \ conf \ server-standard.xml и измените порт сервера = 8105 на другой порт по вашему выбору. Убедитесь, что вы используете один и тот же порт в обоих файлах. Повторите для каждого экземпляра TeamCity.
Запустите каждый сервис и подключитесь к браузеру, чтобы настроить каталог данных для каждого из них. Мне пришлось остановить все экземпляры службы teamcity, кроме текущего, или я получил ошибку «клиент не аутентифицирован» во время процесса сборки, но после завершения они, кажется, работают нормально.
Настройка доступа к базе данных соответствующим образом.
Используйте эти инструкции для установки нескольких агентов сборки на одном компьютере . Я не верю, что возможно совместно использовать агент между экземплярами TeamCity, поскольку связь является двухсторонней, и, похоже, нет способа настроить более одного порта, поэтому, вероятно, лучше установить агенты на C: \ TeamCity1 \ buildAgent1 \ named TeamCity1BuildAgent1, C: \ TeamCity1 \ buildAgent2 \ named TeamCity1BuildAgent2, C: \ TeamCity2 \ buildAgent1 \ named TeamCity2BuildAgent1 и т. Д.
Если вы хотите использовать стандартные порты для каждого экземпляра TeamCity (80 и / или 443), следуйте этим инструкциям, чтобы использовать IIS в качестве прокси для Tomcat .