• Jenkins


    1 - 简介

    Jenkins支持分布式多节点(Master-Slave)运行模式。
    将安装Jenkins的主机作为Master节点,然后通过界面配置(或远端启动服务)来添加Slave节点。
    在这种部署结构下,Master通常只充当管理者的角色,负责任务的调度,slave节点的管理,任务状态的收集等工作,具体的构建任务则会分配给slave节点。
    一个Master节点理论上可以管理的slave节点数是没有上限的,但通常随着数量的增加,其性能以及稳定性就会有不同程度的下降,具体的影响则因Master硬件性能的高低而不同。
    多节点(Master-Slave)部署通常以“Jenkins + Docker”的方式来部署,可以避免当测试用例变得海量以后可能会造成的一些问题。
    通常规模较大,代码提交频繁(意味着构建频繁),自动化测试压力较大的项目都会采取这种部署结构。

    2 - Slave节点

    Slave节点实际上在其他主机上运行的agent进程,无需再安装完整的Jenkins服务。
    通过建立双向的TCP/IP通信连接来实现启动Slave节点上的agent进程。

    2.1 创建全新的Slave节点

    系统管理--》节点管理--》新建节点

    配置节点基本信息

    2.2 关键配置说明

    并发构建数
    - 该节点可以并行的最大任务数,建议和CPU内核数相等
    ​
    远程工作目录
    - Salve节点的workplace目录,存放一些源码和文件
    ​
    标签
    - 用来表示节点的群组,在配置任务时可以指定对应的群组
    ​
    用法
    - 尽可能使用这个节点:被Jenkins随机调用
    - 只允许运行绑定到这台机器的job:当任务指定使用该节点时,才会使用,适合特定任务和资源紧张的场景
    ​
    启动方式(Launch slave agents via SSH)
    - Jenkins通过SSH方式自动连接到远端节点并传送agent启动文件slave.jar,然后通过java方式启动一个Slave agent进程
    - 无需对Slave节点进行任何配置操作,推荐使用。
    ​
    启动方式(Launch agent via execution of command on the master)
    - 在Master节点上通过SSH远程在Slave节点执行指令来启动agent程序
    - 需要事先将Slave.jar放到到Slave节点
    ​
    启动方式(Launch agent via Java Web Start)
    - 可以连接Windows Slave节点
    - 需要Slave节点主动连接到Master节点,适合设置没有主动访问权限的节点
    ​
    可用性
    - 控制启动和停止该节点的模式
    ​
    节点属性
    - 工具位置:如果设置Slave节点的工具执行路径,将覆盖全局配置的默认路径
    - 环境变量:如果设置Slave节点的同名环境变量,将覆盖系统全局变量的值
    ​
    

    2.3 查看状态

    系统管理--》节点管理

    系统管理--》节点管理--》 laveNode-192.168.16.203

    3 - Slave节点启动日志

    系统管理--》节点管理--》SlaveNode-192.168.16.203---》日志

    SSHLauncher{host='192.168.16.203', port=22, credentialsId='e6ae3eab-fbe7-406e-bf12-8d13deaf308a', jvmOptions='', javaPath='', prefixStartSlaveCmd='', suffixStartSlaveCmd='', launchTimeoutSeconds=210, maxNumRetries=10, retryWaitTime=15, sshHostKeyVerificationStrategy=hudson.plugins.sshslaves.verifiers.NonVerifyingKeyVerificationStrategy, tcpNoDelay=true, trackCredentials=true}
    [12/04/19 09:06:38] [SSH] Opening SSH connection to 192.168.16.203:22.
    [12/04/19 09:06:38] [SSH] WARNING: SSH Host Keys are not being verified. Man-in-the-middle attacks may be possible against this connection.
    [12/04/19 09:06:38] [SSH] Authentication successful.
    [12/04/19 09:06:38] [SSH] The remote user's environment is:
    BASH=/usr/bin/bash
    BASHOPTS=cmdhist:extquote:force_fignore:hostcomplete:interactive_comments:progcomp:promptvars:sourcepath
    BASH_ALIASES=()
    BASH_ARGC=()
    BASH_ARGV=()
    BASH_CMDS=()
    BASH_EXECUTION_STRING=set
    BASH_LINENO=()
    BASH_SOURCE=()
    BASH_VERSINFO=([0]="4" [1]="2" [2]="46" [3]="2" [4]="release" [5]="x86_64-redhat-linux-gnu")
    BASH_VERSION='4.2.46(2)-release'
    DIRSTACK=()
    EUID=0
    GROUPS=()
    HOME=/root
    HOSTNAME=node203
    HOSTTYPE=x86_64
    ID=0
    IFS=$' 	
    '
    LANG=en_US.UTF-8
    LESSOPEN='||/usr/bin/lesspipe.sh %s'
    LOGNAME=root
    MACHTYPE=x86_64-redhat-linux-gnu
    MAIL=/var/mail/root
    OPTERR=1
    OPTIND=1
    OSTYPE=linux-gnu
    PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
    PIPESTATUS=([0]="0")
    PPID=3026
    PS4='+ '
    PWD=/root
    SHELL=/bin/bash
    SHELLOPTS=braceexpand:hashall:interactive-comments
    SHLVL=1
    SSH_CLIENT='192.168.16.102 53268 22'
    SSH_CONNECTION='192.168.16.102 53268 192.168.16.203 22'
    TERM=dumb
    UID=0
    USER=root
    XDG_DATA_DIRS=/root/.local/share/flatpak/exports/share/:/var/lib/flatpak/exports/share/:/usr/local/share/:/usr/share/
    XDG_RUNTIME_DIR=/run/user/0
    XDG_SESSION_ID=12
    _=/etc/bashrc
    flatpak_dirs=/root/.local/share/flatpak/exports/share/:/var/lib/flatpak/exports/share/
    command_not_found_handle () 
    { 
        local runcnf=1;
        local retval=127;
        [[ $- =~ i ]] || runcnf=0;
        [[ ! -S /run/dbus/system_bus_socket ]] && runcnf=0;
        [[ ! -x '/usr/libexec/packagekitd' ]] && runcnf=0;
        [[ -n ${COMP_CWORD-} ]] && runcnf=0;
        if [ $runcnf -eq 1 ]; then
            '/usr/libexec/pk-command-not-found' "$@";
            retval=$?;
        else
            if [[ -n "${BASH_VERSION-}" ]]; then
                printf 'bash: %scommand not found
    ' "${1:+$1: }" 1>&2;
            fi;
        fi;
        return $retval
    }
    [12/04/19 09:06:38] [SSH] Checking java version of /jenkins-data/jdk/bin/java
    Couldn't figure out the Java version of /jenkins-data/jdk/bin/java
    bash: /jenkins-data/jdk/bin/java: No such file or directory
    ​
    [12/04/19 09:06:38] [SSH] Checking java version of java
    [12/04/19 09:06:39] [SSH] java -version returned 1.8.0_161.
    [12/04/19 09:06:39] [SSH] Starting sftp client.
    [12/04/19 09:06:39] [SSH] Remote file system root /jenkins-data does not exist. Will try to create it...
    [12/04/19 09:06:39] [SSH] Copying latest remoting.jar...
    [12/04/19 09:06:39] [SSH] Copied 872,440 bytes.
    Expanded the channel window size to 4MB
    [12/04/19 09:06:39] [SSH] Starting agent process: cd "/jenkins-data" && java  -jar remoting.jar -workDir /jenkins-data -jar-cache /jenkins-data/remoting/jarCache
    Dec 04, 2019 5:06:41 PM org.jenkinsci.remoting.engine.WorkDirManager initializeWorkDir
    INFO: Using /jenkins-data/remoting as a remoting work directory
    Dec 04, 2019 5:06:41 PM org.jenkinsci.remoting.engine.WorkDirManager setupLogging
    INFO: Both error and output logs will be printed to /jenkins-data/remoting
    <===[JENKINS REMOTING CAPACITY]===>channel started
    Remoting version: 3.33
    This is a Unix agent
    Evacuated stdout
    Agent successfully connected and online
    
    

    4 - 执行pipeline任务

    4.1 建立流水线任务

    4.2 构建

    4.3 查看输出

    控制台输出

    查看Blue Ocean

  • 相关阅读:
    PAT A1060——string的常见用法详解
    题解-ZJOI2015地震后的幻想乡
    题解-富有物理组的风采
    题解-概率计算器
    题解-CodeForces835F Roads in the Kingdom
    题解-hdu2866 Special Prime
    题解-poj3682King Arthur's Birthday Celebration
    题解-拉格朗日(bzoj3695变种)
    题解-ZeroJudge-c686 高斯符號
    其他-几道物理题
  • 原文地址:https://www.cnblogs.com/anliven/p/11974081.html
Copyright © 2020-2023  润新知