Jenkins新手实战系列——4.节点服务器构建

958 阅读2分钟

前话

在前面的案例《Jenkins新手实战系列——2.管道(Pipeline)模式项目》中我们实操体会到了jenkins脚本的灵活强大。

案例中我们的项目是较为复杂的前端项目,在自动构建过程中我们执行了npm run build的命令构建打包生成目标资源文件。

这是个较为消耗服务器内存与算力的动作。如果有多个jenkins项目同时执行(虽然可以设置),那么jenkins服务器就会变的卡顿甚至有可能崩掉。

这时候我就有个需求,jenkins服务主要只做jenkins项目的管理,监听构建触发器,将构建动作交给节点服务器执行。jenkins当然想到了用户会有这个需求,因此在管理后台设置中提供了新增管理节点的能力。

下面开始案例实战。

案例

之前的项目my-pipeline存在吃服务器性能的构建动作,我想在我每次提交代码的时候,这个项目能够被感知有新的提交的时候并且将构建动作交给节点服务器执行。

开始

1. 创建节点服务器

我们使用Docker启动一个新的容器用作节点服务器,并且安装好openssh、java、git和node等包用于jenkins项目构建,详细细节略(请参考Docker文档)。

# 启动容器
docker run --name slave --network mybridge --privileged -t -d centos /sbin/init

# 进入容器
docker exec -it slave /bin/bash

# 安装相关包
yum install openssh-server java-1.8.0-openjdk.x86_64 git nodejs.x86_64 passwd -y

# 修改密码
passwd

# 启动ssh服务
systemctl start sshd

# 新建jenkins目录
mkdir /usr/local/share/jenkins

2. 新增配置节点服务器

2.1 进入jenkins服务管理后台找到节点服务器管理面板

2.2 点击新增节点(New Node)按钮新增配置节点服务器

2.3 初始化节点服务器

我们列表页可以看到我们新增的节点服务器。

点击名称进入节点服务器详情页,如果节点初始化失败我们点击 relaunch agent 按钮重新初始化即可。

3. 修改jenkins项目

我们找到前面章节创建的jenkins项目my-pipeline,修改Jenkinsfile指定构建执行的节点服务器,设置agent,指定的label为节点服务器配置的labels对应保存即可。

修改后的脚本内容如下:

pipeline {
    agent {
        label 'node'
    }
    stages {
    	...
    }
}

另外,在自由模式项目中,我们同样可以指定节点服务器构建,配置如下:

测试

我们在git项目my-pipeline项目中新建变更提交,回到jenkins项目首页,即可看到项目进行自动构建。

点击日志,可以看到项目构建动作在我们指定的节点服务器中执行。