Как установить Jenkins на Windows Server 2012

13

Это может звучать как банальный вопрос, но вот что происходит:

  1. Я беру последнюю версию Jenkins как собственный установщик для Windows (1.491 в моем случае)
  2. Я установил Windows Server 2012 (официальный образ выпуска, без версии-кандидата) и установил все обновления
  3. Я пытаюсь запустить установку Jenkins.

В процессе установки все работает нормально, кроме той части, где он пытается запустить службу. На этом этапе мне сообщают, что у меня недостаточно прав для запуска системных служб. Это работало на 2k8R2 без проблем. Я вошел в систему как администратор, который был создан во время установки сервера и является единственным пользователем на компьютере.

Полное сообщение, которое я получаю:

Служба «Дженкинс» (Jenkins) не запустилась. Убедитесь, что у вас достаточно прав для запуска системных служб.

Кто-нибудь еще имеет эти проблемы? Я предполагаю, что внутренние компоненты Server 2012 изменили способ установки, и установщик Jenkins для этого не создан.

Если кто-то может сказать мне, к какой группе я должен добавить администратора, или может дать мне решение этой проблемы, это очень поможет.

хомяк
источник

Ответы:

13

Вам нужно установить .net 3.5 (даже если у вас установлен .net 4+)

Вы делаете это через Диспетчер серверов:

  • Настроить локальный сервер
  • Добавить роли и функции
  • Нажимайте дальше, пока не дойдете до раздела функций
  • Проверьте флажок .net 3.5 (я также проверил подпункты для хорошей меры)
  • Если вы получите предупреждение о необходимости указать альтернативный путь, то:
    • Вставьте установочный носитель Windows.
    • Нажмите Указать альтернативный исходный путь
    • Поместите D: \ sources \ sxs в поле пути (нажмите Ok)
  • Нажмите Установить

Сделав это, вы сможете установить Jenkins через установщик msi. Теперь он сможет успешно запустить сервис Jenkins.

Я думаю, что Jenkins пытается установить .net 3.5, но из-за того, что установочный носитель «отсутствует», он зависает (работает в фоновом режиме), и именно поэтому он на самом деле истекает

DarcyThomas
источник
Я не знаю почему, но .NET Framework 3.5, похоже, является единственным отсутствующим требованием ... Спасибо за этот совет, который исправляет первоначальную проблему
HaMster
3

Я сделал это наконец!

Мне нужно было не только установить .NET 3.5 (спасибо DarcyThomas), но я также узнал, что мне нужно добавить конфигурационный файл в каталог установки.

Добавьте файл с именем jenkins.exe.config со следующим содержимым в каталог установки:

<configuration> 
  <runtime> 
     <generatePublisherEvidence enabled="false"/> 
  </runtime> 
</configuration> 

Оказывается, при запуске службы Windows пытается подключиться к Интернету, чтобы загрузить сертификат для подтверждения лица, подписавшего исполняемый файл. Так что в моем случае, когда сервер не имеет доступа в Интернет, он не работает. Я нашел решение здесь .

Я надеюсь, что это спасет всех остальных от часов боли, которые я только что пережил. Приветствия.

Бен Калл
источник
Какой выпуск Windows Server 2012 вы запускали? Мне никогда не приходилось делать это на моей стандартной версии.
HaMster
Windows Server 2012 Datacentre - хотя я думал, что в основном наша сетевая архитектура сломала вещи, а не само издание.
Бен Калл
2

Я нашел решение, основанное на этом ответе Яна . Проблема в том, что Windows ищет сертификат для службы, а ваш сервер не имеет доступа к Интернету. Лучший вариант - включить доступ в Интернет к серверу для установки Jenkins. Вам это не понадобится после установки Jenkins.

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

1) Создайте каталог: C:\Program Files (x86)\Jenkins

2) Создайте текстовый файл с именем jenkins.exe.config

3) Добавьте следующий текст в текстовый файл:

<configuration> 
  <runtime> 
     <generatePublisherEvidence enabled="false"/> 
  </runtime> 
</configuration>

4) Запустите установку как Administrator

Серж Саган
источник
Вы действительно не должны публиковать ссылки, как насчет просто скопировать и вставить свой другой ответ здесь?
BenjiWiebe
Хорошо ... это сделано
Серж Саган
2
Копировать / вставлять ответы, как правило, не рекомендуется, если они не получены / не процитированы должным образом (это попадает под плагиат).
ashes999
0

Создайте запланированное задание Windows, которое будет выполняться только после запуска Windows. В некоторых дистрибутивах Windows запуск Jenkins как службы просто не работает из коробки. Этот подход взломан, но он работает. Я использовал его на нескольких узлах Windows.

Я лично считаю, что документы Jenkins по Windows нуждаются в некоторой доработке в этом отношении. Возможно, немного больше работы над этим, а также ...

Надеюсь, это поможет.

carlspring
источник
Я думал об одном и том же, и сейчас я справляюсь с этим. Тем не менее, я хочу дать несколько парней, впервые знакомых с этой темой, и было бы неплохо, если бы Дженкинс работал. Я думаю, что я собираюсь рассказать им об этой проблеме или принять участие сам. Но спасибо за подсказку.
HaMster
Пожалуйста, напишите, если будет найдено лучшее решение, или если вы, наконец, получите их, чтобы это исправить. Я должен был жить с этим более двух лет на моей предыдущей работе, и это раздражало. Установщик JNLP не работает из коробки во многих случаях (это один из них). Я думаю, что вместо того, чтобы пытаться использовать глупые DLL-файлы Windows, им следует ... вызывать сценарий командной строки, который либо добавляет его в качестве службы, либо создает запланированное задание. Я считаю, что это должно быть довольно легко.
carlspring
У меня никогда не было проблем с собственным установщиком на окнах, который представлен на плате загрузки на домашней странице Jenkins . Первый раз, когда я не закончил установку успешно, был в описанном выше случае, даже если я сделал несколько попыток с различными сценариями. Итак, как я уже сказал, я думаю, что это специфическая проблема для Server 2012
HaMster
О, я видел это на Windows Server 2008 каждый раз. Наверняка.
Carlspring
Это Windows Server без проблем с доступом в Интернет
Серж Саган