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

浙公网安备 33010602011771号