1、Jenkins 在开发过程中所属位置
2、Jenkins + Maven + Git 持续集成基础使用
3、安装硬件环境和知识储备
* Jenkins 主服务器 Jenkins 测试服务器 GitLab 代码托管服务器
GitLab 常用命令
gitlab-ctl start # 启动所有 gitlab 组件;
gitlab-ctl stop # 停止所有 gitlab 组件;
gitlab-ctl restart # 重启所有 gitlab 组件;
gitlab-ctl status # 查看服务状态;
gitlab-ctl reconfigure # 启动服务;
vi /etc/gitlab/gitlab.rb # 修改默认的配置文件;
gitlab-ctl tail # 查看日志;
官方文档:GitLab最新版下载安装_GitLab中文免费版-极狐GitLab中文官方网站
1、安装Docker:CentOS8 安装 Docker repo ‘appstream‘ 下载元数据失败_仍怀热爱的博客-CSDN博客
2、 安装GitLab 至少 6G 内存
docker run --detach \
--hostname 192.168.1.8 \
--publish 443:443 --publish 80:80 \
--name gitlab \
--restart always \
--volume $GITLAB_HOME/config:/etc/gitlab:Z \
--volume $GITLAB_HOME/logs:/var/log/gitlab:Z \
--volume $GITLAB_HOME/data:/var/opt/gitlab:Z \
--shm-size 256m \
registry.gitlab.cn/omnibus/gitlab-jh:latest
3、进入 GitLab 容器
docker exec -it gitlab /bin/bash
4、访问 GitLab 服务器地址 192.168.1.8
当首次运行出现502错误的时候排查两个原因
5、管理员账号登录
用户名:root
密码存在下面文件中,登录后需要改密码不然24小时之后会失效
cat /etc/gitlab/initial_root_password
密码是 Password 后面的字符串
root@192:/# cat /etc/gitlab/initial_root_password
# WARNING: This value is valid only in the following conditions
# 1. If provided manually (either via `GITLAB_ROOT_PASSWORD` environment variable or via `gitlab_rails['initial_root_password']` setting in `gitlab.rb`, it was provided before database was seeded for the first time (usually, the first reconfigure run).
# 2. Password hasn't been changed manually, either via UI or via command line.
#
# If the password shown here doesn't work, you must reset the admin password following https://docs.gitlab.com/ee/security/reset_user_password.html#reset-your-root-password.
Password: JLDZaPOGsPVONhL7BBZ4mgrcO6GxJuHlfReZGldE4qQ=
# NOTE: This file will be automatically deleted in the first reconfigure run after 24 hours.
6、提交一份代码到GitLab
Jenkins 官方文档:Jenkins
1、安装 Jenkins
docker pull jenkins/jenkins:latest
2、创建 Jenkins 目录
mkdir -p /root/docker/jenkins
3、安装启动 Jenkins
docker run -d \
-u root \
--name jenkins \
-p 9302:8080 \
-v /root/docker/jenkins:/var/jenkins_home \
-v /var/run/docker.sock:/var/run/docker.sock \
jenkins/jenkins
4、查看 Jenkins 容器ID && 进入容器
docker ps
docker exec -u 0 -it 容器ID /bin/bash
5、查看 Jenkins 解锁密码
[root@localhost ~]# cat /root/docker/jenkins/secrets/initialAdminPassword
5661515b79f24386a039659438c8c008
6、安装 Jenkins 插件
7、安装完成
二、安装jdk、maven、git
三、安装 jenkins 插件
四、添加任务
1、创建一个 jenkins 任务
2、配置仓库地址
4、配置Maven
${user.home}/.m2/repository
org.mortbay.jetty
releases
ali
ali
Snapshots
ali
ali
nexus
*
http://maven.aliyun.com/nexus/content/groups/public/
nexus-public-snapshots
public-snapshots
http://maven.aliyun.com/nexus/content/repositories/snapshots/
nexus-public-snapshots1
public-snapshots1
https://artifacts.alfresco.com/nexus/content/repositories/public/
development
central
http://central
true always
true always
central
http://central
true always
true always
public-snapshots
public-snapshots
http://public-snapshots
false
true always
public-snapshots
http://public-snapshots
false
true always
development
public-snapshots
我没有把maven挂载到 Jenkins 所以有报错 重新配置一遍
docker stop 容器ID
docker run --name zyljenkins \
-d -p 9302:8080 \
-p 50000:50000 \
-v /var/jenkins_home:/var/jenkins_home \
-v /usr/local/maven:/usr/local/maven \
-v /usr/local/allure-2.17.2:/usr/local/allure-2.17.2 \
--env JAVA_OPTS="-Xms256m -Xmx512m -Xss1024K -XX:PermSize=128m -XX:MaxPermSize=256m" jenkins/jenkins
5、重新配置之后再次启动
7、构建成功
五、安装远程服务器插件 Publish Over SSH
1、安装插件
2、配置远程服务器
3、勾选密码
5、我这里踩了一个坑把 remove 看成 remote 了 一直报错
6、测试
7、去测试服务器看一下 jar 包 在不在
1、安装JRE
yum install java-1.8.0-openjdk
2、查看 JRE 版本 验证是否安装成功
3、我们看到文件夹特别长
4、在配置中修改
5、把之前的目录 rm -rf 并且在 jenkins 重新执行
6、配置最后执行语句
7、重新执行
8、查看测试服务器 是否运行成功
1、优化指令
2、再次优化 简化
3、之前的配错了!!挪过来!!
5、编写 shell 脚本
#!/bin/bash
# 删除历史数据
rm -rf zyl
#获取jar包pid
pid=`ps -ef | grep 8088 | grep 'java -jar' | awk '{printf $2}'`
echo $pid
kill -9 $pid
6、优化 shell 脚本 将端口号传入
7、再次优化 shell 脚本
# 删除历史数据
rm -rf zyl
appprot=$1
#获取jar包pid
pid=`ps -ef | grep $1 | grep 'java -jar' | awk '{printf $2}'`
echo $pid
# 如果 pid 为空 提示一下 否侧运行 kill
if [ -z $pid ];
# 如果是空的 -z 空值判断
then
echo "$appprot not started"
else
kill -9 $pid
echo "$appport stoping..."
fi
8、传值
1、查看网页输出的
2、修改 IDE 代码并提交
3、重新构建 jenkins item
1、查看网页输出的
1、修改 jenkins item 配置
2、 添加令牌
3、生成 URL :http://192.168.1.12:9302/job/first/build?token=weilekaixin
4、如果对这个 URL 发起一次 GET 请求 则 jenkins 就会帮助我们构建一次项目
5、配置插件 如果不配 GitLab 则无权访问
6、再次生成 URL : http://192.168.1.12:9302/buildByToken/build?job=first&token=weilekaixin
7、配置GitLab
8、不支持本地请求
9、切换管理员身份
10、选择网络
11、退回项目 重新配置
12、配置成功
13、发送 Push 测试一下
14、测试成功
15、提交代码测试一下
一、提交前
1、看提交前接口返回
二、提交后
1、jenkins 触发了事件
2、我们跟踪一下 发现已经打包成功
3、看提交后接口返回