您当前的位置: 首页 >  devops

庄小焱

暂无认证

  • 3浏览

    0关注

    805博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Devops——基于KubeSphere的CICD系统构建

庄小焱 发布时间:2021-10-19 16:15:31 ,浏览量:3

摘要

在开发的过程中都会设计到很多的项目的CICD的任务,单台Jenkins的不能完成大量的同时CI/CD的任务。因此需要组件Jenkins集群来实现大量任务同时CI/CD。在企业中大都是都是使用jenkins集群来实现工作。因此学习搭建一个jenkins集群是作为学习jenkins的前提。同时本文将学会使用docker的方式来实现jenkins集群部署操作。

一、Jenkins单节点的安装 1.1 拉取jenkins镜像
# 开启docker

systemctl start docker


#查看是否拉取到了

docker images

#拉取jenkins镜像

docker pull jenkins/jenkins:lts

#查看运行转态

docker ps

#查看jenkins的具体的方式

docker inspect jenkins [image id]

1.2 运行Jenkins容器
#需要先创建一个Jenkins的配置目录,并且挂载到docker 里的Jenkins目录下

mkdir -p /data/jenkins_home/

#修改目录权限

chown -R 1000:1000 /data/jenkins_home/

运行 Jenkins

docker run -d --name jenkins -p 8040:8080 -p 50000:50000 -v /data/jenkins_home:/var/jenkins_home jenkins/jenkins:lts

-d 标识是让 docker 容器在后台运行
--name 定义一个容器的名字,如果没有指定,那么会自动生成一个随机数字符串当做UUID
-p 8040:8080 端口映射,我本地的8080被占用了,所以随便映射了一个8040
-p 50000:50000 端口映射
-v /data/jenkins_home:/var/jenkins_home 绑定一个数据卷,/data/jenkins_home是刚才创建的本地数据卷

# 查询初始登入密码

docker logs (容器ID)

#或者使用的命令

docker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword

85770376692448b7b6a8e301fb437848

 

1.3 jenkins插件更换源 修改default.json
cd /var/lib/jenkins/updates

sed -i 's/http:\/\/updates.jenkins-ci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' default.json && sed -i 's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' default.json

修改Update Site

# 修改jenkins配置文件,将插件的更新地址更换成能够访问的 

vim .jenkins/hudson.model.UpdateCenter.xml

默认:https://updates.jenkins.io/update-center.json 

修改:https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

重启jenkins

在浏览器输入 ip:port/restart
二、Jenkins的集群安装 1.1 拉取jenkins镜像
# 开启docker

systemctl start docker


#查看是否拉取到了

docker images

#拉取jenkins镜像

docker pull jenkins/jenkins:lts

#查看运行转态

docker ps

#查看jenkins的具体的方式

docker inspect jenkins [image id]

1.2 启动jenkins容器
************************************节点0************************************
#开启jeninks-master

#在每台电脑上创建文件夹 

mkdir /home/data/jenkins

#赋予权限

chown -R 1000:1000 /home/data/jenkins

#开启jeninks-master

docker run -d --name jenkins-matser -p 9090:8080 -v /home/data/jenkins:/var/jenkins_home  -v /data/run/docker.sock:/var/run/docker.sock jenkins/jenkins:lts

************************************节点1************************************

#开启jeninks-node1

#在每台电脑上创建文件夹 

mkdir /home/data/jenkins

#赋予权限

chown -R 1000:1000 /home/data/jenkins

#开启jeninks-master

docker run -d --name jenkins-matser -p 9090:8080 -v /home/data/jenkins:/var/jenkins_home  -v /data/run/docker.sock:/var/run/docker.sock jenkins/jenkins:lts

************************************节点2************************************

#开启jeninks-node2

#在每台电脑上创建文件夹 
 
mkdir /home/data/jenkins

#赋予权限

chown -R 1000:1000 /home/data/jenkins

#开启jeninks-master

docker run -d --name jenkins-matser -p 9090:8080 -v /home/data/jenkins:/var/jenkins_home  -v /data/run/docker.sock:/var/run/docker.sock jenkins/jenkins:lts

************************************参数说明************************************

-d //启动在后台

--name //容器名字

-p //端口映射(9090:宿主主机端口,8080:容器内部端口)

-v //数据卷挂载映射(/data/jenkins_home:宿主主机目录,另外一个即是容器目录)
************************************参数说明************************************

# 查询初始登入密码

docker logs (容器ID)

#或者使用的命令

docker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword

85770376692448b7b6a8e301fb437848

1.3 jenkins插件更换源

修改default.json

cd /var/lib/jenkins/updates

sed -i 's/http:\/\/updates.jenkins-ci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' default.json && sed -i 's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' default.json

修改Update Site

# 修改jenkins配置文件,将插件的更新地址更换成能够访问的 

vim .jenkins/hudson.model.UpdateCenter.xml

默认:https://updates.jenkins.io/update-center.json 

修改:https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

重启jenkins

在浏览器输入 ip:port/restart
1.4 选择安装查件安装:

1.5 jenkins集群构建 1.5.1 加入agent1

1.在Jenkins网页上新增节点,操作如下图,先进入节点管理页面:

2.如下图,新增一个节点,名为agent1:

3.接下来的节点详情信息如下图,注意四个红框中的内容要和图中保持一致:

4.保存成功后会显示机器列表,如下图,图标上的红叉表示机器不在线(此时agent1还没有接入),点击红框:

5.如下图所示,红框中的命令就是agent1的启动命令,执行该命令的机器会以agent1的身份加入集群:

6.注意上图红框中的agent.jar是个名为agent.jar的文件的下载链接,将此文件下载到agent1电脑的/usr/local/jenkins目录下;

7.ssh登录agent1电脑,执行以下命令,即可将agent1加入Jenkins集群:上述命令中的后半部分,即java -jar ......就是前面图片红框中的agent1启动命令,唯一要改变的是将agent.jar改成绝对路径/usr/local/jenkins/agent.jar

docker run \
  -u root \
  -idt \
  --name agent \
  -v /home/data/jenkins:/usr/local/jenkins \
  bolingcavalry/openjdk-with-sshpass:8u232 \
  java -jar /home/data/jenkins/agent.jar \
  -jnlpUrl http://192.168.133.131:8080/computer/agent1/slave-agent.jnlp \
  -secret 44c3e8d1531754b8655b53294bbde6dd99b3aaa91a250092d0d3425534ae1058 \
  -workDir "/home/data/jenkins"

8.上述命令的镜像是bolingcavalry/openjdk-with-sshpass:8u232,其Dockerfile内容如下,可见非常简单,就是OpenJDK镜像里面安装了sshpass,这样的容器可以在执行ssh命令时带上远程机器的密码,而不用等待用户输入密码,这样便于shell脚本执行ssh命令:

FROM openjdk:8u232

ARG DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get install --assume-yes sshpass

 去Jenkins的网页上查看节点列表,如下图,可见agent1已经成功加入:

1.5.2 加入agent2

1. agent2加入集群的方式和agent1大部分是一样的,只有以下两点要注意:

  • 在Jenkins页面上创建节点,名称是agent2
  • agent2的标签是gradle,如下图红框所示:

2. 此时agent2也加入成功

至此,Jenkins集群搭建完成,这两个节点带有不同的标签

博客参考

快速搭建Jenkins集群 - 程序员欣宸 - 博客园

掘金

关注
打赏
1657692713
查看更多评论
立即登录/注册

微信扫码登录

0.0375s