ubuntu

Jenkins在Ubuntu上如何进行集群配置

小樊
49
2025-09-23 02:38:39
栏目: 智能运维

Jenkins在Ubuntu上的集群配置指南
Jenkins集群通过**主节点(Master)**负责任务调度、监控及插件管理,**从节点(Slave/Agent)**执行具体构建任务,提升构建效率与系统弹性。以下是Ubuntu环境下配置Jenkins集群的详细步骤:

一、准备工作

  1. 服务器要求:至少准备1台主节点(Master)和1台及以上从节点(Slave),建议使用Ubuntu 20.04/22.04 LTS版本。
  2. 网络连通性:主从节点之间需开放SSH(默认22端口)及Jenkins相关端口(如8080),确保能互相访问。
  3. Java环境:所有节点需安装Java 11及以上版本(Jenkins依赖Java运行)。
    sudo apt update
    sudo apt install -y openjdk-11-jdk
    java -version  # 验证安装
    

二、安装Jenkins

1. 主节点安装Jenkins

2. 从节点安装Java

从节点无需安装Jenkins,仅需Java环境(步骤同上)。

三、配置Jenkins主节点

  1. 安装必要插件
    进入Manage JenkinsManage Plugins,安装以下插件:

    • SSH Slaves(用于SSH方式连接从节点)
    • Pipeline(支持流水线任务)
    • Git(如需从Git仓库拉取代码)
  2. 配置Master节点属性
    进入Manage JenkinsConfigure System,修改以下参数:

    • Jenkins URL:设置为http://<主节点IP>:8080(供从节点访问)。
    • SSH Credentials:添加从节点的SSH私钥(用于无密码登录,后续步骤需生成)。

四、添加从节点到集群

1. 主节点操作:创建从节点

进入Manage JenkinsManage Nodes and CloudsNew Node,配置如下:

2. 从节点操作:配置SSH免密登录

在从节点上生成SSH密钥对,并将公钥添加到主节点:

ssh-keygen -t rsa -b 4096  # 一路回车,默认路径
ssh-copy-id ubuntu@<主节点IP>  # 将公钥复制到主节点(替换为实际用户名)

测试SSH连接:

ssh ubuntu@<主节点IP>  # 应无需密码直接登录

3. 启动从节点代理

回到主节点的从节点配置页面,点击Save,Jenkins会自动生成启动命令。在从节点终端执行该命令(如):

java -jar /tmp/jenkins-agent.jar -jnlpUrl http://<主节点IP>:8080/computer/ubuntu-slave-01/slave-agent.jnlp -secret <生成的密钥> -workDir "/home/ubuntu/jenkins_agent"

若命令过期,可重新从主节点Manage Nodes页面获取最新命令。执行后,从节点状态应显示为Idle(空闲)。

五、验证集群功能

  1. 创建分布式任务
    进入New Item → 输入任务名称(如test-distributed-build)→ 选择Freestyle projectOK
  2. 限制任务运行节点
    Configure页面,勾选Restrict where this project can be run,输入从节点标签(如ubuntu)。
  3. 添加构建步骤
    选择Execute shell,输入简单命令(如echo "Running on $(hostname)")。
  4. 运行任务:点击Build Now,在控制台输出中查看任务是否在从节点执行(如显示Running on ubuntu-slave-01)。

六、高级配置(可选)

  1. 配置负载均衡
    安装Load Balancer Plugin,将多个主节点组成集群,通过负载均衡器(如Nginx)分配任务,提升集群吞吐量。
  2. 高可用性(HA)
    使用Keepalived实现主节点故障自动切换,配置虚拟IP(VIP),确保Jenkins服务持续可用。
  3. 安全加固
    • 进入Manage JenkinsConfigure Global Security,启用Jenkins’ own user database(用户认证)。
    • 使用Credentials Binding Plugin安全存储敏感信息(如Git凭证、API密钥)。
  4. Pipeline集成
    将任务转换为Pipeline脚本(Jenkinsfile),支持多节点并行执行(如parallel指令),提升构建效率。

通过以上步骤,即可在Ubuntu环境下完成Jenkins集群配置,实现构建任务的分布式执行与管理。

0
看了该问题的人还看了