如何从命令行安装jenkins插件?

Aru*_*ran 20 testing jenkins jenkins-plugins

有没有从命令行安装jenkins插件的选项?

谷歌搜索后我发现了一个命令:

java -jar /var/lib/jenkins/jenkins.war -s http://127.0.0.1:8080/ install-plugin ${Plugin_Name}
Run Code Online (Sandbox Code Playgroud)

但它不起作用.

Chr*_*Orr 33

按照詹金斯命令行接口文档,您需要使用客户端 JAR文件(而不是服务器你使用WAR文件),它可以从詹金斯直接获得,通过链接,例如上的http://本地主机:8080/CLI

然后,您可以使用此JAR运行该命令:

java -jar jenkins-cli.jar -s http://127.0.0.1:8080/ install-plugin <name>
Run Code Online (Sandbox Code Playgroud)

这将下载安装您想要的插件及其任何依赖项.

  • 如果你从war文件中运行jenkins,那么jenkins-cli.jar很可能已经解压缩并缓存在这里:/var/cache/jenkins/war/WEB-INF/jenkins-cli.jar (7认同)
  • 谢谢你.对于运行该命令并出现此错误的任何人:"错误:匿名缺少整体/读取权限",您需要提供`-auth`命令开关,如下所示:`java -jar jenkins-cli.jar - s http:// localhost:8080 -auth <username>:<password> install-plugin <plugin-1> <plugin-2> ...`,还要确保`-auth <username>:<密码>`部分出现在`install-plugin`参数之前.换句话说,论证的顺序很重要.毫无疑问,您使用的Jenkins用户必须具有足够的权限. (3认同)

Ija*_*han 6

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

def logger = Logger.getLogger("") 
def installed = false 
def initialized = false

def pluginParameter="gitlab-plugin hipchat swarm" 
def plugins =pluginParameter.split() 
logger.info("" + plugins) 
def instance =Jenkins.getInstance() 
def pm = instance.getPluginManager() 
def uc =instance.getUpdateCenter() 
uc.updateAllSites()

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)
        plugin.deploy()
      installed = true
    }   } }

if (installed) 
   {  
      logger.info("Plugins installed, initializing a   restart!")   
       instance.save()  
       instance.doSafeRestart()
 }
Run Code Online (Sandbox Code Playgroud)

  • 为什么你不止一次调用 `uc.updateAllSites()`?是故意的吗? (2认同)

use*_*663 6

自 2019 年 9 月起,您还可以使用插件安装管理器工具。它需要一个列出插件的 yaml 文件,并将插件下载到您选择的文件夹中。不需要有一个正在运行的 Jenkins 实例。您可以在 yaml 文件中指定插件版本,但请注意JENKINS-60205

获取插件管理器:

version=1.0.1
curl \
    -L \
    -X GET "https://github.com/jenkinsci/plugin-installation-manager-tool/releases/download/plugin-management-parent-pom-$version/jenkins-plugin-manager-$version.jar" \
    -o jenkins-plugin-manager-$version.jar
Run Code Online (Sandbox Code Playgroud)

下载插件:

java -jar jenkins-plugin-manager-$version.jar \
    --plugin-download-directory pluginsFolder \
    --plugin-file plugins.yml \
    --war jenkins.war
Run Code Online (Sandbox Code Playgroud)

插件在pluginsFolder.