jenkins 节点部署

本文详细介绍了如何在JenkinsMaster上注册新节点,并使用Docker和docker-compose在部署节点上配置和启动JenkinsAgent。过程中提到了节点配置、Docker镜像、启动脚本的编写以及阿里云环境下的端口设置问题。

1、节点注册

登陆jenkins master界面

路径:首页-->系统管理--> 节点管理-->新建节点(New Node)

插曲:我在新的服务器部署master节点,显示剩余交换空间为0B

 处理方式请查看:Jenkins - Free Swap Space 0(剩余交换空间为0)_Venele的博客-优快云博客

1.1 节点命名,并选择固定节点

1.2 节点配置

Number of executors:8 (节点同步可执行的任务数)

远程工作目录:/var/jenkins (工作目录必须设置,否则 Jenkins 节点上的一些文件就会在用户的 home 目录)

启动方式:选择通过 Java Web 代理

 点击保存,生成节点

 点击test1节点,查看确认生成了secret-file,则节点注册完成

2、节点部署

基础软件:docker   python3  docker-compose

基础软件安装参考:Docker搭建Jenkins master_Venele的博客-优快云博客

登陆部署节点的服务器,编辑jenkins-agent的docker-compose.yml以及startup-agent.sh启动脚本

2.1 docker-compose.yml编辑

vim /var/docker/docker-compose.yml
 
<-----# docker-compose.yml 内容如下:----->
version: "3"
 
services:
  jenkins-agent:
    image: jenkins/inbound-agent:alpine
    container_name: jenkins-agent
    restart: always
    network_mode: host
    user: root
    volumes:
     - /var/run/docker.sock:/var/run/docker.sock  
     - /var/docker/jenkins/jenkins:/var/jenkins 
     - /var/docker/jenkins/startup-agent.sh:/var/startup.sh 
    command: /var/startup.sh 

2.2 startup-agent.sh脚本编辑

vim /var/docker/jenkins/startup-agent.sh

<-----startup-agent.sh内容如下:----->

#!/usr/bin/env bash
 
apk add docker-cli tini
 
tini -- /usr/local/bin/jenkins-agent -url http://ip:port <Secret> <NodeName>

注:

http://ip:port <Secret> <NodeName>中

ip:jenkins master节点服务的IP

port:jenkins master服务端口,默认为8080

NodeName:节点名称,jenkins master注册节点是所填写的名称,本案例中为: test1

Secret:在jenkins master页面注册节点成功后生成的秘钥,如下图 

2.3  startup-agent.sh授权及节点工作目录的创建

# 创建执行目录
mkdir -p /var/docker/jenkins/jenkins

# 启动脚本授权
chmod +x /var/docker/jenkins/startup-agent.sh

3、启动节点

3.1 启动节点镜像

docker-compose up -d

3.2 查看节点镜像是否启动成功

docker logs -f jenkins-agent

3.3 启动成功,则日志中显示connected状态

刷新jenkins节点列表,节点正常

 踩坑:

因为我的master 节点部署在阿里云,阿里云的通讯端口需要手动设置,jenkins通讯需要设置8080,50000两个端口,不然节点无法连接成功

### Jenkins Master-Slave Deployment Guide #### 1. 准备工作环境 为了成功部署Jenkins主从架构,需确保所有节点已安装必要的软件包并配置好网络连接。对于Ubuntu系统来说,设置文件权限是重要的一环。 更改指定目录下的文件拥有者可以使用`chown`命令[^2]: ```bash chown ubuntu:ubuntu -R /home/nfs/jenkins ``` 这一步骤有助于解决因权限不足而导致的操作失败问题。 #### 2. 构建Docker镜像用于Slave节点 利用Docker来构建适合执行特定任务的工作站(slave)。下面这条指令展示了怎样基于当前路径下提供的Dockerfile创建一个新的Docker镜像,并将其推送到私有仓库中去[^1]: ```bash docker build -t reg.qiang.com/ops/jnlp-slave-mvn:latest . ``` 此过程完成后即可获得一个定制化的Jenkins Slave Docker镜像版本。 #### 3. 配置Master节点上的服务状态 确认Jenkins服务器正在稳定运行非常重要,在Linux环境下可以通过systemctl工具查询其活动状况以及加载情况等信息[^3]: ```bash [root@test10 ~]# systemctl status jenkinsjenkins.service - LSB: Jenkins Automation Server Loaded: loaded (/etc/rc.d/init.d/jenkins; generated) Active: active (running) since ... ``` 上述输出表明Jenkins实例已被正确启动并且处于活跃状态之中。 #### 4. 使用Helm管理Chart资源 当涉及到Kubernetes集群内部署的应用程序生命周期时,helm是一个非常有用的工具。如果想要移除先前通过helm安装过的jenkins chart,则可采用如下方式完成操作[^4]: ```bash helm delete jenkins --purge ``` 该命令不仅会卸载应用本身还会清理掉关联的数据存储对象。 #### 5. 实现完整的CI/CD流程集成 最后要做的就是把各个部分组合起来形成一条流畅的持续集成管道。通常情况下,我们会借助于Nginx Ingress Controller实现外部访问控制功能;与此同时,合理规划master与slaves之间的通信机制也是必不可少的一部分。 ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值