1987WEB视界-分享互联网热门产品和行业

您现在的位置是:首页 > WEB开发 > 正文

WEB开发

云原生:如何搭建Jenkins主从架构

1987web2023-10-06WEB开发148

Jenkins主从架构

前文《云原生:Jenkins构建服务器的安装》介绍了单台Jenkins服务器的安装。Jenkins一般采用主从架构搭建。Jenkins安装在一台主机上,所有的jobs都在这台机器上运行,如果运行太多jobs时,会形成等待。Jenkins实现主从架构,增加从节点的目的就是为了解决这个问题,提高效率。

搭建主从架构,只需要在master主机上安装Jenkins就可以了,其他的从节点不用安装,只需要通过slave.jar运行的。从节点环境需要安装 wget、axel、sshpass、jdk、git、maven,创建项目测试时会用到的日志目录、docker的安装、docker私有仓库的配置,这些依赖的安装和配置可以参考前文。本文重点介绍Jenkins主从节点之间的打通。

配置从节点免密登录

首先在从节点机器上创建jenkins用户,用于执行构建任务,以及一些环境配置。

创建Jenkins用户

使用root登录远程从节点机器,执行以下命令创建Jenkins用户:

adduser jenkinspasswd jenkins

生成jenkins用户的ssh密钥

在Master服务器上生成密钥文件:

$ ssh-keygen -t rsa

最终会在Master服务器当前登录的用户目录中生成公钥id_rsa.pub和私钥id_rsa这两个文件。

master节点免密登录slave主机

在slave节点上添加ssh认证文件,方便master节点无密码登录slave主机。

$cd~/.ssh$touch authorized_keys

用ssh-copy-id将公钥复制到slave节点(192.168.3.13)上。

ssh-copy-id -i /root/.ssh/id_rsa.pub jenkins@192.168.3.13

创建Jenkins Credentials凭据

在master服务器Jenkins首页,点击左边的凭据:

添加凭据

添加凭据:Username 栏填写之前创建的jenkins用户;Private Key栏复制jenkins用户生成的私钥的内容。

复制私钥内容

完成Jenkins Credentials认证的创建。

部署jenkins用户公钥到Gitlab

登录自建的Gitlab服务器,选择Settings,再选择SSH Keys,复制公钥到指定位置即可。

配置Master节点

进入Jenkins服务器的首页,管理节点。

管理节点

新建节点:输入节点名,选择Permanent Agent(固定节点),点击【OK】。

新建节点

配置从节点信息。

从节点配置

从节点信息配置包括:

  • Name:节点名称
  • Description:节点描述
  • Number of executors:并发构建数量
  • Remote root directory:远程工作目录,填写从节点上jenkins agent的工作目录,推荐用绝对路径,注意jenkins用户要有该目录的读写权限
  • Labels:标签。不改动。jenkins可以通过标签指定一组从服务器运行某个构建任务
  • Usage:用法。不改动。可以指定什么情况下使用该从节点,有尽可能使用该节点和只有任务指定了使用该节点时,才用该节点运行两种选择。
  • Launch method:启动方法。选择launch slave agents via SSH。
  • Host:填写从服务器的ip或域名
  • Credentials:填写SSH认证信息
  • Host Key Verification Strategy:选择 Manually Trusted Key Verification Strategy,这会在完成配置后,第一次连接从节点时要求我们手动确认当前连接的从节点的身份。Host Key 验证是用来防止中间人攻击的。
  • Availability:可用性。不改动。

填完之后,点击【保存】,完成从节点创建。

点击【启动代理】按钮下载slave-agent.jnlp,放到节点机器上,双击启动。节点机器必须有jdk环境,因为需要javaws.exe来启动。

从节点远程工作目录会生成如下文件。

[root@tcpip01 jenkins-salve ]tree /data/jenkins//data/jenkins/└── slave.jar

创建Jenkins项目,测试slave可用性

Jenkins的首页,点击左边最上面的新建来创建项目,构建一个自由风格的软件项目,出现下面界面。

创建任务

项目配置。

项目配置

从节点执行后的结果如下。

[root@jenkins-slave home]tree -L 3 /home/jenkins//home/jenkins/├── slave.jar
└── workspace
├── blog-solo2
│ ├── CHANGE_LOGS.html
│ ├── docker-compose.yml
│ ├── Dockerfile
│ ├── gulpfile.js
│ ├── LICENSE
│ ├── package.json
│ ├── pom.xml
│ ├── README.md
│ └── src
└── blog-solo2@tmp

这样就实现了Jenkins主从架构的搭建。