• Jenkins


    1 - Jenkins插件

    Jenkins通过插件来增强功能,可以集成不同的构建工具、云平台、分析和发布工具等,从而满足不同组织或用户的需求。
    Jenkins 提供了不同的的方法来安装插件(需要不同级别的权限)

    • 在web UI使用 "插件管理器":Manage Jenkins --》 Manage Plugins (系统管理--》管理插件),选中相应插件,根据提示安装即可。
    • 使用Jenkins CLI install-plugin 命令。
    • 手工安装.hpi 文件(插件被打包成独立的 .hpi 文件, 包含有所有必需的代码, 图像和成功运行所需要的资源)

    注意:前两种方法要求 Jenkins 主机能够从更新中心下载元数据,否则只能通过手工安装.hpi 文件来完成。

    官方信息

    2 - 插件管理中心

    插件管理中心(https://plugins.jenkins.io/)提供了一个由Jenkins社区的成员共同开发和维护的开源插件的清单。
    在插件管理中心页面,可以通过关键字搜索所需插件,查看插件的概要介绍。

    • 插件最新更新时间
    • 插件的使用人数趋势图
    • 插件的依赖关系
    • 插件的更新日志
    • 插件的使用手册
    • 其他信息:GitHub地址、插件主页等

    3 - 方式1:Manage Jenkins

    在web UI使用 "插件管理器":Manage Jenkins --》 Manage Plugins (系统管理--》插件管理),选中相应插件,根据提示安装即可。

    跳转到“更新中心”界面,建议勾选“安装完成后重启Jenkins(空闲时)”,这一种安全的重启方式

    4 - 方式2:使用Jenkins CLI install-plugin 命令

    4.1 SSH认证

    设置SSH公钥

    [root@test102 .ssh]# ssh-keygen -t rsa
    Generating public/private rsa key pair.
    Enter file in which to save the key (/root/.ssh/id_rsa): 
    Enter passphrase (empty for no passphrase): 
    Enter same passphrase again: 
    Your identification has been saved in /root/.ssh/id_rsa.
    Your public key has been saved in /root/.ssh/id_rsa.pub.
    The key fingerprint is:
    SHA256:rcCDUlXolsjUJ8e6SRdvnRmDJWxSO0CQ7eqLzhIq4jY root@test102
    The key's randomart image is:
    +---[RSA 2048]----+
    |     .oO+ooo.    |
    |    ..= B.+oo    |
    |   o.o B =o. =   |
    |   .oo* o.o.+    |
    |  . .o+=S..      |
    |  ..  +o .       |
    | . . .  .        |
    |+E.. ..          |
    |=..o+ ..         |
    +----[SHA256]-----+
    [root@test102 .ssh]# 
    [root@test102 .ssh]# ll
    total 8
    -rw------- 1 root root 1675 Dec  4 13:28 id_rsa
    -rw-r--r-- 1 root root  394 Dec  4 13:28 id_rsa.pub
    [root@test102 .ssh]# cat id_rsa.pub 
    ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDQnHJ3FE6V16VNL4QnnJHNRpfLbEIVlGhRA6vBHN+FY8c+oW/8oM8d9PkfQsb1nufRZeucr+5hjDmhMxU+ftYZu9b838ru5Jj5dmBMKXw2+jOEaHTqV9Qwvz6Mk8QRXzUXv0FMmXuEh/sqVSaWp6dne/guQDSQtA1+vqS5UUj1PF1IIA9Xa0dlrhz0K/Fj1BIqDRQyZHpFN7v+caAzOPt8qZaTKCQpKoUoQk/3K+kDLDEyjEJxm8t9cSn1dJF9bxVXBaj/e8nv4fSg4hsJvDBF5NuAXPl7pZNWUC0G5+3OJsUvmLf5By6z71l9ODPmfgDf17E7oBkjQFJx1D8W+4ar root@test102
    [root@test102 .ssh]#
    

    Jenkins--》用户---》设置---》SSH Public Keys---》应用保存

    指定SSHD端口
    系统管理--》全局安全配置--》SSH Server,指定端口--》应用 保存并重启Jenkins服务

    特别说明:这里是使用了Jenkins blue-ocean镜像来启动Jenkins服务的,50000端口在执行docker run命令时已映射到本地主机

    docker run 
       --name myjenkins 
       -u root 
       -d 
       -p 8080:8080 
       -p 50000:50000 
       -v /tmp/jenkins-data:/var/jenkins_home 
       -v /var/run/docker.sock:/var/run/docker.sock 
       jenkinsci/blueocean
    

    通过list-plugins命令列出目前安装的所有插件

    [root@test102 ~]# ssh -l Anliven -p 50000 192.168.16.102 list-plugins |grep local
    localization-support               Localization Support Plugin                                      1.1
    localization-zh-cn                 Localization: Chinese (Simplified)                               1.0.11
    locale                             Locale plugin                                                    1.4
    [root@test102 ~]# 
    

    通过install-plugin命令安装插件,然后重启Jenkins服务

    [root@test102 ~]# ssh -l Anliven -p 50000 192.168.16.102 help install-plugin
    java -jar jenkins-cli.jar install-plugin SOURCE ... [-deploy] [-name VAL] [-restart]
    Installs a plugin either from a file, an URL, or from update center. 
     SOURCE    : If this is an URL, Jenkins downloads the URL and installs that as
                 a plugin. If it is the string ‘=’, the file will be read from
                 standard input of the command. Otherwise the name is assumed to be
                 the short name of the plugin in the existing update center (like
                 ‘findbugs’), and the plugin will be installed from the update
                 center. If the short name includes a minimum version number (like
                 ‘findbugs:1.4’), and there are multiple update centers publishing
                 different versions, the update centers will be searched in order
                 for the first one publishing a version that is at least the
                 specified version.
     -deploy   : Deploy plugins right away without postponing them until the
                 reboot. (default: false)
     -name VAL : No longer used.
     -restart  : Restart Jenkins upon successful installation. (default: false)
    [root@test102 ~]# 
    [root@test102 ~]# ssh -l Anliven -p 50000 192.168.16.102 list-plugins |grep -i log
    [root@test102 ~]# 
    [root@test102 ~]# ssh -l Anliven -p 50000 192.168.16.102 install-plugin log-cli
    Installing log-cli from update center
    [root@test102 ~]# 
    [root@test102 ~]# 
    [root@test102 ~]# ssh -l Anliven -p 50000 192.168.16.102 safe-restart
    

    等待Jenkins服务重启完成

    [root@test102 ~]# ssh -l Anliven -p 50000 192.168.16.102 list-plugins |grep -i log
    log-cli                            Log CLI Plugin                                                   25.67b2695c027c
    [root@test102 ~]# 
    

    4.2 HTTP认证

    CLI 客户端可以直接通过Jenkins主机的URL地址下载。
    注意:如果Jenkins更换版本后,jenkins-cli.jar也要使用对应的版本,否则会出现兼容性问题。
    通过浏览器下载:http://192.168.16.102:8080/jnlpJars/jenkins-cli.jar

    或者,使用wget命令下载

    [root@test102 ~]# wget http://192.168.16.102:8080/jnlpJars/jenkins-cli.jar
    --2019-12-04 13:08:49--  http://192.168.16.102:8080/jnlpJars/jenkins-cli.jar
    Connecting to 192.168.16.102:8080... connected.
    HTTP request sent, awaiting response... 200 OK
    Length: 3620739 (3.5M) [application/java-archive]
    Saving to: ‘jenkins-cli.jar’
    ​
    100%[========================================================================>] 3,620,739   --.-K/s   in 0.005s  
    ​
    2019-12-04 13:08:49 (648 MB/s) - ‘jenkins-cli.jar’ saved [3620739/3620739]
    ​
    [root@test102 ~]# ll jenkins-cli.jar 
    -rw-r--r-- 1 root root 3620739 Dec  3 16:00 jenkins-cli.jar
    [root@test102 ~]# 
    

    通过list-plugins命令列出已安装插件信息

    [root@test102 ~]# java -jar jenkins-cli.jar -s http://192.168.16.102:8080/ -auth Anliven:123456 list-plugins |grep log
    Dec 04, 2019 2:28:33 PM org.apache.sshd.common.util.security.AbstractSecurityProviderRegistrar getOrCreateProvider
    INFO: getOrCreateProvider(EdDSA) created instance of net.i2p.crypto.eddsa.EdDSASecurityProvider
    log-cli                            Log CLI Plugin                                                   25.67b2695c027c
    [root@test102 ~]# 
    

    4.3 一键更新所有Jenkins插件

    编写shell脚本(SSH认证方式)

    [root@test102 ~]# cat update-all-jenkins-plugins.sh 
    #!/bin/sh
    ​
    UPDATE_LIST=$(ssh -l Anliven -p 50000 192.168.16.102 list-plugins |grep -e ')$' | awk '{print $1}');
    ​
    if  [ ! -z "${UPDATE_LIST}" ]; then
        echo "Updating Jenkins Plugins: ${UPDATE_LIST}";
        ssh -l Anliven -p 50000 192.168.16.102 install-plugin ${UPDATE_LIST};
        ssh -l Anliven -p 50000 192.168.16.102 safe-restart;
    fi
    [root@test102 ~]# 
    [root@test102 ~]# sh update-all-jenkins-plugins.sh 
    

    5 - 方式3:手工安装.hpi 文件

    Jenkins插件都采用独立的 .hpi 文件格式, 包含有所有必需的代码, 图像和成功运行所需要的资源。
    hpi格式插件文件下载:http://mirrors.jenkins.io/plugins/
    操作步骤:Manage Jenkins -- 》Manage Plugins--》Advanced 标签--》Upload Plugin*部分,选择对应的.hpi文件--》Upload

    特别注意:
    此种方式无法自动处理插件之间的依赖关系,因此不适合安装复杂依赖关系的插件。

  • 相关阅读:
    网络知识学习系列(一)
    C# 开发系列(三)
    angularJS 系列(三)- 自定义 Service
    添加百度地图,显示定位
    angularJS 系列(二)——理解指令 understanding directives
    angularJS 系列(一)
    hbuilder 手机app开发系列(一)
    vue + 百度地图api
    百度地图api
    canvas的api
  • 原文地址:https://www.cnblogs.com/anliven/p/11964663.html
Copyright © 2020-2023  润新知