一、前言
本文学习自:2022版Jenkins教程(从配置到实战) 如有不妥,欢迎指正
二、构建资料
已经包括了本文档使用的所有所需的安装包
三、安装docker
1、解压docker
docker-20.10.10.tgz
2、复制文件
cp docker/* /usr/bin/
3、编写启动文件
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
[Service]
Type=notify
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
# Having non-zero Limit*s causes performance problems due to accounting overhead
# in the kernel. We recommend using cgroups to do container-local accounting.
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
# Uncomment TasksMax if your systemd version supports it.
# Only systemd 226 and above support this version.
#TasksMax=infinity
TimeoutStartSec=0
# set delegate yes so that systemd does not reset the cgroups of docker containers
Delegate=yes
# kill only the docker process, not all processes in the cgroup
KillMode=process
# restart the docker process if it exits prematurely
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
[Install]
WantedBy=multi-user.target
vim /etc/systemd/system/docker.service
4、授权
chmod +x /etc/systemd/system/docker.service
5、重载
systemctl daemon-reload
6、启动docker
systemctl start docker
7、设置开机自启
systemctl enable docker.service
8、设置阿里云镜像
vim /etc/docker/daemon.json #填入下面内容
{
"registry-mirrors": ["https://1tschl8w.mirror.aliyuncs.com"]
}
9、重载
systemctl daemon-reload
10、重启
systemctl restart docker
四、安装Gitlab
1. 官网 : 安装私有化部署版极狐GitLab
如果事先导入了镜像(镜像文件在开头的资料中有)
docker run -d --hostname 192.168.44.146 --publish 443:443 --publish 80:80 --name gitlab --restart always -v /opt/gitlab/config:/etc/gitlab -v /opt/gitlab/log:/var/log/gitlab -v /opt/gitlab/data:/var/opt/gitlab --shm-size 256m 82d3d2e0547d
没有镜像
docker run -d \
--hostname 192.168.44.146 \
--publish 443:443 --publish 80:80 \
--name gitlab \
--restart always \
--volume /opt/gitlab/config:/etc/gitlab:Z \
--volume /opt/gitlab/logs:/var/log/gitlab:Z \
--volume /opt/gitlab/data:/var/opt/gitlab:Z \
--shm-size 256m \
registry.gitlab.cn/omnibus/gitlab-jh:latest
查看初始密码(进入容器中查看)
cat /etc/gitlab/initlal_root_password
24小时有效
账号 root 密码 b0X/oOKySLpk+CS7bbqXxUsHOnVAvb7ihkhdPOo=
安装完成后需要等待一段时间,第一次启动比较慢,如果遇到提示502,是正常的,还需要等待一下
访问
ip:80
五、安装jenkins
1. 安装java环境和maven环境(资料在开头的资料中有)
编辑文件
vim /etc/profile
export MAVEN_HOME=/opt/apache-maven-3.6.3
export PATH=${PATH}:${MAVEN_HOME}/bin
export JAVA_HOME=/usr/local/java/jdk1.8.0_212
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/jre/lib/rt.jar
export PATH=$PATH:$JAVA_HOME/bin
1. 启动jenkins(资料在开头的资料中有)
nohup java -jar jenkins.war &
初始登录账号和密码在启动日志中有打印
1.1 访问
ip:8080
1.2 因为是后面补的,所以本来还有插件安装的,可以直接看开头的b站连接
2. 场景一: 部署后端SpringBoot服务
2.1 jenkins服务器配置java环境(配置方法不在讲述)
2.2 jenkins服务器配置maven环境(配置方法不在讲述)
2.3 jenkins系统配置maven
【系统管理】-【全局工具配置】
找到maven,点击添加,配置maven的家目录
2.4 创建任务,首页点击创建任务
2.5 配置任务保存期限和个数
2.6 配置git地址
源码管理,选择git,注意,只要git地址和凭证没问题,图中错误会自动消失
配置git凭证,点击凭证下“添加”,添加完成后就可在上方选择到
2.7 配置构建环境
- 我的配置是,maven打包完成后,将jar包发送至另外的一台服务器,并执行脚本启动
- 上图中可看到,这里需要添加一个SSH服务,此时,需要到系统配置中先配置SSH服务,我们找到【系统管理】-【系统配置】–一直往下划找到Publish over SSH
- 配置完成后,最下方可点击测试,出现success则为配置成功!
* 配置完成后,我们回到任务配置界面,配置构建环境,此时,我们在这里应该可以选择到刚才我们配置的ssh服务
- 配置说明
(1)Source files: 指的是你需要传输的文件的位置,这里就是我们需要传输的jar包的位置,他是基于你的任务中间路径来的,举个例子:当你创建了一个叫demo的任务,执行过后(没执行时不会有)会在服务器的/root/.jenkins/workspace/ 目录下,新建一个demo的文件夹,里面存放了你的git拉取的项目,比如我的项目
我们的任务是demo,maven打包后,我们的jar包路径为demo/target/aaa.jar ,那么,我们的Source files配置为target/*.jar(或者直接写target/aa.jar)就行
(2)Remove prefix:下图的翻译结果说的很明白了,比如我们的jar路径配置为target/aa.jar,这样,执行任务后,会在远程服务器上生成target目录,下面才是我们的jar包,如果我们不需要target目录,则Remove prefix直接配置target
*
(3)Remote directory:目标文件夹配置,也就是你的jar包需要传递到目标服务器的哪个目录下,这里有个也不叫坑的东西,就是我们前面步骤中配置了SSH服务,他的默认路径是/root, 也就是说,我们这里如果配置了比如: /opt/demo ,那么,远程SSH服务器上会生成 /root/opt/demo 的文件路径,也就是翻译中说的“此文件夹将位于全局配置中的文件夹(如果存在)下”。这个全局配置中的文件夹默认不配置就是/root。如果你全局配置了/opt ,而你的部署路径要在/opt/demo/下,则Remote directory只需要配置/demo即可。
全局配置在这里
(4)Exec command:简单来说,就是你把jar传过去后,要做什么,那么我们这里,当然是启动jar包了,我这里是在远程服务器的目录下创建了启动脚本,直接执行即可,你也可以将你的启动脚本放到项目里面, 和jar包压缩后一起传过去,也可以在添加一个Transfer Set,先把命令传过去,再把jar传过去,最后执行脚本。