centos7安装jenkins

一:概述

    jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件项目可以进行持续集。
   功能:
1、持续的软件版本发布/测试项目。
2、监控外部调用执行的工作。

二:安装

安装方式有很多种,本次我用的是war包部署
1.Jenkins官网下载war包,下载tomcat9
2.讲jenkins.war放到tomcat的webapps目录下
3.启动tomcat,通过http://localhost:8080/jenkins 或者本机的ip访问

三:访问

image
执行命令查看密码

# cat /var/lib/jenkins/secrets/initialAdminPassword

安装推荐的插件
image
等待安装完成
image

四:配置git,maven等

1.配置git
image
2、配置maven

  • 配置maven路径
    image
  • 配置maven的setttings.xml文件位置
    image
    3、配置jdk
    当本地已经配置过jdk后可以选择不配置
    image

还有一些其余的安装方式:可以参考大佬的博客:
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就是我们需要的
image
image
image
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

image
image

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}

posted @   Diamond-fz  阅读(291)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示
点击右上角即可分享
微信分享提示