centos7安装jenkins
一:概述
jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件项目可以进行持续集。
功能:
1、持续的软件版本发布/测试项目。
2、监控外部调用执行的工作。
二:安装
安装方式有很多种,本次我用的是war包部署
1.Jenkins官网下载war包,下载tomcat9
2.讲jenkins.war放到tomcat的webapps目录下
3.启动tomcat,通过http://localhost:8080/jenkins 或者本机的ip访问
三:访问
执行命令查看密码
# cat /var/lib/jenkins/secrets/initialAdminPassword
安装推荐的插件
等待安装完成
四:配置git,maven等
1.配置git
2、配置maven
- 配置maven路径
- 配置maven的setttings.xml文件位置
3、配置jdk
当本地已经配置过jdk后可以选择不配置
还有一些其余的安装方式:可以参考大佬的博客:
https://www.cnblogs.com/fangts/p/11095316.html
五:jenkins连接haobor
直接用docker login注册登陆私服即可,以后就是流水线推送镜像。
六:jenkins链接racher
实现自动化,脚本最后一步就是必须得在镜像推送到harbor后rancher实现自动的重新部署,那么jenkins怎么关联上rancher呢,这里要用到rancher-cli,官网也有说明。我看网上有直接从jenkins中增加配置,我这里用rancher-cli
1.rancher生成api token,并且设置永不过期,Bearer Token就是我们需要的
2.在jenkins服务器上安装rancker-cli,并且登录到rancher
wget https://releases.rancher.com/cli2/v2.2.0/rancher-linux-amd64-v2.2.0.tar.gz
tar xf rancher-linux-amd64-v2.2.0.tar.gz
mv rancher-v2.2.0/rancher /usr/bin/rancher
rm -rf rancher-v2.2.0/
rancher login https://rancherIp/v3 --token 你的token
3.安装kubectl client
远程下载
curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.15.0/bin/linux/amd64/kubectl
然后执行
chmod +x ./kubectl
sudo mv ./kubectl /usr/local/bin/kubectl
kubectl version
然后可能需要选择项目啥的 按照提示操作即可
./rancher kubectl get node
7.jenkins流水线作业
这里我以一个前段例子为例,编写流水线脚本,里面的参数都是可以再上面配置的参数化构建choice parameter
#!/bin/bash
#npm config set user 0
#npm config set unsafe-perm true
npm install
npm run build
# 判断前端应用是否打包成功
if [ $? -ne 0 ];
then
echo "Java Application Complie Fail! Jenkins Job Exit."
exit 1;
else
echo "Java Application Complie Success. Jenkins Will Build docker image!"
fi
#删除原有的镜像,后续推送新的,grep后面跟的是具体镜像
imgId=`sudo docker images | grep 192.168.101.172/prod-test/cis-portal-develop | awk '{print $3}'`
if [ "$imgId" = "" ]
then
echo "Nothing to delete!"
else
sudo docker rmi $imgId
fi
#打包镜像并且推送到私服
sudo docker build -t 192.168.101.172/prod-test/cis-portal-develop:${BUILD_TAG#*/} -f ./Dockerfile .
sudo docker push 192.168.101.172/prod-test/cis-portal-develop:${BUILD_TAG#*/}
#部署到k8s集群(更新操作),这里有两种方式 推荐的是我这一种,第二种我写在下面(会串行,一次只能执行一个)
ls_date=`date +'%Y-%m-%d %H:%M:%S'`
p="{\"spec\":{\"template\":{\"metadata\":{\"annotations\":{\"cattle.io/timestamp\":\"${ls_date}\"}}}}}"
kubectl patch deploy cis-portal-develop -p "$p" --kubeconfig /root/kubectl-config-prod.txt --namespace=${NAMESPACE}
tips:第二种rancher更新发布操作(不推荐)
前面我们已经使用了jenkins关联rancher,我们可以再这里设置用切换rancher上下文然后使用rancher kubectl操作指定集群,比如我这里rancher-cli目录在/usr/bin,那么可以这样写
/usr/bin/rancher context switch + 项目id
跟上上面的PROJECT_ID即可切换到对应的集群
然后用
/usr/bin/rancher deploy cis-portal-develop -p "$p" --kubeconfig /root/kubectl-config-prod.txt --namespace=${NAMESPACE}
本文来自博客园,作者:Diamond-fz,转载请注明原文链接:https://www.cnblogs.com/fzstudy/p/15335816.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示