集成,就是一些孤立的事物或元素通过某种方式集中在一起,产生联系,从而构建一个有机整体的过程。
持续,就是指长期的对项目代码进行集成。
持续集成是指将所有开发者工作副本每天多次合并到主干的做法。
持续集成强调开发人员提交了新代码之后,立刻进行构建、测试。根据测试结果,我们可以确定新代码和原有代码能否正确地集成在一起。
对于一个成熟的CICD管到来说,最后的阶段就是持续部署。作为持续交付——自动将生产就绪型构建版本发不到代码存储库的延伸。
一个最小化的持续集成系统需要包含以下几个要素:
下载jdk文件
上传到服务器的目录中
在服务器新建java目录,在java目录中创建/opt/jdk目录
在java目录中解压文件
tar axvf jdk-21_linux-x64_bin.tar.gz -C /opt/jdk --strip-components 1
修改配置文件,配置环境变量
vim /etc/profile
写入环境变量
export JAVA_HOME=/opt/jdk
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
更新配置文件
source /etc/profile
创建Jenkins目录
在java/opt目录中创建jenkins目录
下载jenkins
wget -O /opt/jenkins/jenkins.war http://mirrors.jenkins.io/war-stable/latest/jenkins.war
在jenkins目录中,执行以下命令
java -jar jenkins.war --httpPort=8080
关闭防火墙,避免端口拦截
systemctl stop firewalld.service
使用serverIP:port访问即可登录jenkins
在jenkins文件夹下
下载安装脚本
curl -fsSL https://get.docker.com -o get-docker.sh
执行脚本
sudo sh get-docker.sh
执行完毕后,即安装完毕
docker加速
mkdir /etc/docker
vim /etc/docker/daemon.json # daemon.json 的内容详见阿里云docker加速部分内容
systemctl daemon-reload
systemctl restart docker
安装jenkins
# jenkins
docker run \
-d \
-u root \
-p 8080:8080 \
-v /home/jenkins:/var/jenkins_home \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /home:/home \
--name jenkins
jenkins/jenkins
# 更简单的命令
docker run -itd -p 8086:8080 jenkins/jenkins:lts
查看初始化密码
docker logs jenkins
如果上面的命令行不通,先通过docker ps查看容器运行信息,复制CONTAINER ID
然后运行docker logs 用复制的ID替换
登录Jenkins
在浏览器中访问serverip:8080访问登录页面,输入上面命令得到的密码即可进入
进入jenkins系统管理(manage jenkins) -> 插件管理(manage plugins) ->高级选项卡(advanced) -> 升级站点,使用华源:
https://mirrors.tuna.tsinghua.edu.cn/jenkins/update/current/update-center.json
进入configure reference设置环境变量
进入global tool configure,安装jdk、git、docker
进入configure global security,添加用户组,创建权限。
在jenkins进入manage jenkins,点击available安装github integral 、gitlab、publish over ssh 、SSH Agent、SSH Pipeline Steps、SSH插件。
在服务器中根目录下创建gitlab文件夹
在gitlab文件夹下创建docker-compose.yml文件
文件内容可在github中docker-gitlab仓库复制
安装docker-compose.yml
sudo curl -L https://github.com/docker/compose/releases/download/v2.22.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
执行文件
chmod +x /usr/lcoal/bin/docker-compose
docker-compose up -b
在浏览器中输入serverIP:port访问
JenkinsfileJenkinsfile中