Настройка плагинов с помощью Jenkins Job Builder

Я пытаюсь использовать Jenkins Job Builder для установки плагинов jenkins, но я неправильно понимаю, что может сделать JJB, или я делаю что-то не так. Я использовал команду get-plugins-info, чтобы получить описание моих плагинов в формате YAML. Позже, при перестроении установки jenkins, я использовал jenkins-jobs -p plugins_info.yaml jobs в надежде, что JJB установит плагины, перечисленные в файле YAML. Но плагины не установил.

Итак, мой первый вопрос: должен ли я вообще ожидать, что JJB установит эти плагины? Документация о том, что JJB делает с информацией о плагине, ограничена, поэтому здесь я использую предположения.

Предполагая, что JJB должен устанавливать плагины в файле YAML, как я могу понять, почему это не так? Я просмотрел журналы Дженкинса безрезультатно.


person abingham    schedule 30.11.2018    source источник


Ответы (2)


JJB не имеет возможности управлять плагинами Jenkins. Вам нужно будет изучить другие инструменты, чтобы справиться с этим для вас, такие как puppet, ansible и т. д.

Использование «get-plugins-info» и параметра «-p» в команде обновления предназначено для передачи информации о текущем установленном плагине в JJB в тех случаях, когда системный администратор не хочет, чтобы все права доступа «администратора» JJB ​​в Jenkins «запросить» информацию о плагине во время запуска обновления. Последние версии Jenkins больше не позволяют анонимно запрашивать информацию о плагинах и, к сожалению, переместили это разрешение в права администратора внутри Jenkins.

plugins-info полезен, потому что JJB поддерживает несколько версий определенных плагинов и должен знать, какая версия установлена, чтобы соответствующим образом создать XML в зависимости от поддерживаемых версий.

person zxiiro    schedule 10.04.2019

Начну с того, что я использую Jenkins Job Builder для создания и управления версиями своих заданий. Но если вы хотите установить/настроить плагины в Jenkins автоматически, вы можете использовать init.groovy.d скрипты, которые будут инициализировать ваш экземпляр jenkins. Для этого создайте следующий каталог ${JENKINS_HOME}/init.groovy.d/, а затем поместите свои groovy-скрипты в этот каталог. Это скрипт, который я использую для установки плагинов при запуске Jenkins.

import jenkins.model.*
import java.util.logging.Logger

def logger = Logger.getLogger("")
def installed = false
def initialized = false
def plugins = ["git", "cloudbees-folder", "build-timeout"]

logger.info("" + plugins)
def instance = Jenkins.getInstance()
def pm = instance.getPluginManager()
def uc = instance.getUpdateCenter()
plugins.each {
  logger.info("Checking " + it)
  if (!pm.getPlugin(it)) {
    logger.info("Looking UpdateCenter for " + it)
    if (!initialized) {
      uc.updateAllSites()
      initialized = true
    }
    def plugin = uc.getPlugin(it)
    if (plugin) {
      logger.info("Installing " + it)
        def installFuture = plugin.deploy()
      while(!installFuture.isDone()) {
        logger.info("Waiting for plugin install: " + it)
        sleep(3000)
      }
      installed = true
    }
  }
}
if (installed) {
  logger.info("Plugins installed, initializing a restart!")
  instance.save()
  instance.restart()
}

Добавьте столько имен плагинов в массив plugins. Надеюсь, это поможет вам и другим.

person nabello    schedule 19.07.2019