为什么用jenkins
工作中难免会遇到多次重复部署的工作,使用jenkins的ci/cd功能来部署项目可以使工作事半功倍。
war包安装
- 选择通用war包下载
https://www.jenkins.io/download/ - 各版本war包
https://get.jenkins.io/war-stable/
yum源安装
先安装官网jenkins的repo源
wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo --no-check-certificate
rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
然后就可以yum安装了
yum -y install jenkins
java环境
因为jenkins在2022年9月就要不支持java8系列了,所以我用的是java11官方版,不是openjdk
链接:https://pan.baidu.com/s/1-jzNluu2LmLTONA2P-f6Vg
提取码:java
启动文件
vim /etc/systemd/system/jenkins.service
[Unit]
Description=Jenkins
After=network-online.target
[Service]
Type=simple
Environment=JENKINS_HOME=/opt/jenkins
ExecStart=/usr/local/jdk-11.0.15/bin/java -jar -Xms1024m -Xmx1024m /opt/jenkins.war
ExecStop=/bin/kill -HUB $MAINPID
KillMode=process
Restart=on-failure
RestartSec=60s
[Install]
WantedBy=multi-user.target
全局工具配置
微信搜索公众号erpao
获取安装nodejs 16.15.0脚本
maven的settings文件
插件管理
插件安装完成后需要重启
汉化插件:Localization: Chinese (Simplified)
这是打包后的插件 基本上涵盖了常用的 大小500Mb
链接:https://pan.baidu.com/s/1vZS82cdSL7j9SRIJvyRbJg?pwd=6666
提取码:6666
不建议设置自动更新,尤其是线上环境
权限管理插件使用:Role-based Authorization Strategy
系统管理:管理用户:新建用户
全局安全配置:授权策略:Manage and Assign Roles
系统管理:安全:Manage and Assign Roles
Manage Roles::Global roles 新加规则名称:BaseRole:只勾选全部下的read权限
Item roles 添加规则 xxx xxx.* 勾选任务全部和SCM
注意:是erpao.* 有个点
回到Manage and Assign Roles
点击Assign Roles 在Global roles和Item roles添加一个组,组名和第4步Item roles名称一样
选中刚添加的名称
添加一个以刚才名称为前缀的任务
登录刚才创建的账号查看。
关于打包jar包和打包前端
最好都是用自由风格的任务,放个git地址和clean package打包命令就行
打包前端就是纯shell了(反正我是这样),添加构建步骤下的执行shell
打包docker镜像也是在执行shell填写
这个shell行是任务名称和镜像名称一样
首先你得编写一个可以用的Dockfile文件
pwd
docker build -t $JOB_NAME .
function JOB(){
docker rm `docker ps -a|grep -v Up|awk '{print $NF}' |grep -w $JOB_NAME`
docker run -itd -v /data/docker_data/example/logs:/home/logs --name $JOB_NAME $JOB_NAME
}
if [ `docker ps |awk '{print $NF}'|grep -w $JOB_NAME|wc -l` -eq 1 ];then
docker stop $JOB_NAME
JOB
else
echo "创建新的$JOB_NAME"
JOB
fi
- 可以使用视图功能来分组,看起来就会整洁点
凭据:
jenkins设置 gogs的凭据(如果因为权限问题clone不下来的话,前提是开发给你加了权限)这就是相应git地址的用户密码,就是开发把你加入他们的组织
-
具体步骤
点开相关仓库 》仓库设置 》管理协作者 》添加新的协作者(只读权限) -
添加凭据就是这样 我用的是账号密码
👉nexus3—maven私仓,它是个特殊的本地仓库和其他构建仓库的中转站,使开发编译时下载的jar依赖包保存到本地maven仓库,使编译更加的快速高效。