Jenkins奇技淫巧 — 节点管理篇


Jenkins奇技淫巧 — 安装篇(mac)
Jenkins奇技淫巧 — 配置篇
Jenkins奇技淫巧 — 安全篇
Jenkins奇技淫巧 — 发送邮件篇
Jenkins奇技淫巧 — 全局变量篇
Jenkins奇技淫巧 — 新建任务篇
Jenkins奇技淫巧 — 插件篇
Jenkins奇技淫巧 — 问题篇
Jenkins奇技淫巧 — 命令篇
Jenkins奇技淫巧 — 环境配置篇(Android自动化构建)
Jenkins奇技淫巧 — 参数化构建篇(Android自动化构建)
Jenkins奇技淫巧 — 第一次实战篇(Android自动化构建)
Jenkins奇技淫巧 — Python打包篇(Android自动化构建)

Jenkins奇技淫巧 — Python发送邮件和上传蒲公英(Android自动化构建)

Jenkins奇技淫巧 — 乐固,多渠道打包篇(Android自动化构建)
Jenkins奇技淫巧 — 节点管理篇
Jenkins奇技淫巧 — 优秀文章篇


简介

现在很多公司都会用Jenkins来实现自动部署+测试平台,对于项目不多,发布不频繁的情况下来说,一般不会用到节点配置,但是对于一些大型的企业来讲,需要同时处理很多的任务,这时候就需要借助Jenkins多节点或者我们所说的Jenkins分布式SLAVE来分担任务了。

环境

  • 阿里云服务器一台,作为从节点
  • mac笔记本一台,作为主节点

添加节点

  • 系统管理 -> 节点管理 -> 新建节点


    Jenkins奇技淫巧 — 节点管理篇_第1张图片
    屏幕快照 2019-05-05 上午10.38.10.png
  • 名称:
    节点名称

  • 远程工作目录:
    在从节点服务器上,新建一个目录,用于存放从节点所需要的文件

  • 标签
    标签用来对多节点分组,标记之间用空格分隔.例如'refression java6'将会把一个节点标记上'regression'和'java6'.

    举例来说,如果你有多个Windows系统的构建节点并且你的Job也需要在Windows系统上运行,那么你可以配置所有的Windows系统节点都标记为'windows', 然后把Job也标记为'windows'.这样的话你的Job就不会运行在除了Windows节点以外的其它节点之上了.

  • 启动方式

    1. Launch agent agents via SSH
      通过安全SSH连接发送命令来启动从节点。需要从主服务器访问从服务器,并且您必须提供可以在目标计算机上登录的帐户。不需要root权限。
      • 主机:即从节点的主机ip

      • Credentials:凭据,如果没有添加过任务凭据,可以点击添加,凭据的用户名和密码分别是从节点访问的用户名和密码。

      • Host Key Verification Strategy
        主机密钥验证策略,控制Jenkins如何在连接时验证远程主机提供的SSH密钥(注意,这里远程主机,值的是从节点,因为现在配置的是从节点的属性)

        1. known hosts file verification strategy
          已知主机文件验证策略
        2. manually provided key verification strategy
          手动提供密钥验证策略
        3. manually trusted key verification strategy
          手动验证密钥验证策略
          选择 Manually Trusted Key Verification Strategy,这会在完成配置后,第一次连接从节点时要求我们手动确认当前连接的从节点的身份。说明一下,Host Key 验证是用来防止中间人攻击的
      • 点开高级

        1. 端口:从节点访问的端口号,默认22,比如阿里云服务器默认也是22.
        2. JavaPath:[可选]JDK路径,默认和master节点相同。路径必须指定到Java程序,如:/path/bin/java,此处java路径 不能仅仅指定JAVA_HOME,
          还要精确到java指令位置。如果只是到JAVA_HOME,在任务执行日志中就会出现 bash:/usr/java/jdk1.8.0_101: is a directory。
        3. JVM Options:[可选]JVM可选参数
        4. Remoting Work directory
          和上面的远程目录填一样就可以,至于有什么区别,不清楚。

        测试可以使用Unix命令,会自动拼接在[SSH] Starting slave process:[Prefix Start Slave Command] cd '/path' && /path/bin/java -jar slave.jar [Suffix Start Slave Command]

    • 点击保存

启动节点

点击保存后,会跳转到启动节点的界面,点击启动即可。

启动成功后,在远程目录(也就是从节点配置时填写的目录)下会多出这几个文件


屏幕快照 2019-05-05 上午11.28.09.png

workspace是第一次执行任务生成的工作目录

  • 在主节点上指定需要在从节点执行的任务
    打开任务的配置页面


    Jenkins奇技淫巧 — 节点管理篇_第2张图片
    屏幕快照 2019-05-05 上午11.31.06.png

这里用到了,配置的标签属性

看一下Jenkins主界面,发现左下角出现了两个节点,启动限制在从节点执行的任务,然后你在从节点的历史列表中能够看到执行中的任务。

任务执行后,在从节点的远程目录下,就会出现workspace目录,下面有我们的工程文件。

  1. Launch agent via execution of command on the master
    通过让Jenkins从主服务器执行命令来启动代理。当主设备能够在另一台机器上远程执行一个进程时,例如,使用此选项。通过SSH或RSH。

    Jenkins考虑到某些企业可能有多个节点。如果在界面配置,那么升级版本之类的操作会很麻烦。所以允许你使用shell脚本去配置管理节点

当某一个节点任务达到一定数量,就会自动分别可以运行该任务的节点机器上。

注意

配置时,一定先保证主机,端口,凭据都是正确的,选择的认证方式也是合理的。

无法启动从节点

  /Users/pengdaosong/.ssh/known_hosts [SSH] No Known Hosts file was found at /Users/pengdaosong/.ssh/known_hosts. 
  Please ensure one is createdat this path and that Jenkins can read it.
  • 生成SSH密钥
    ssh-keygen
    cd .ssh
    cat id_rsa.pub > authorized_keys
    chmod 700 authorized_keys
  • Host Key Verification Strategy
    选择manually trusted key verification strategy

你可能感兴趣的:(Jenkins奇技淫巧 — 节点管理篇)