博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
基于docker+GIT+tomcat+jenkinsd搭建CI/CD部署
阅读量:17325 次
发布时间:2019-09-17

本文共 6309 字,大约阅读时间需要 21 分钟。

持续集成(continuous Intergration,CI):代码合并、构建、部署、测试都在一起,不断地执行这个过程,并对结果反馈

持续部署(Continuous Deployment,CD):部署到测试环境,预生产环境、生产环境

持续交付(Continuous Delivery,CD):将最终产品发布到生产环境,给用户使用

CI/CD示意图

在这里插入图片描述
在这里插入图片描述
CI/CD环境搭建
环境规划:
基础镜像需要有java.jdk环境 和tomcat服务
habor:172.16.16.200
git:172.16.16.90
jenkins:172.16.16.100

搭建harbor

一、搭安装docker配置云的docker-ce源:# step 1: 安装必要的一些系统工具sudo yum install -y yum-utils device-mapper-persistent-data lvm2# Step 2: 添加软件源信息sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo# Step 3: 更新并安装Docker-CEsudo yum makecache fastsudo yum -y install docker-ce# Step 4: 开启Docker服务sudo service docker start

安装docker:

yum install docker-ce
查看版本
docker -v

二、安装harbor

1、将harbor的压缩包解压
tar zxvf harbor-offline-installer-v1.10.1.tgz
cd /harbor

2、编辑habor配置文件

vi harbor.yml修改hostname: 192.168.70.101(一般为本虚拟机的IP)ui_url_protocol : http

3、运行prepare

./prepare

4、安装docker-compose

下载docker-composecurl -L "https://github.com/docker/compose/releases/download/1.23.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose将下载好的docker-compos给与执行性权限chmod +x /usr/local/bin/docker-compose

5、安装harbor在harbor文件下执行

./install.sh

6、安装好之后修改harbor信任权限

curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.iovi /etc/docker/daemon.json{"registry-mirrors": ["http://f1361db2.m.daocloud.io"],"insecure-registries":["172.16.16.200"]} (这里为上面设置的host名字也就是本虚拟机的IP地址)

7、重启docker,并启动所有容器

systemctl restart docker

启动docker ps -a 里查询到的所有容器

三、通过访问本机的80端口配置harbor仓库

1、选择创建项目
2、选择创建新项目
3、输入项目名称y2001选择创建

在这里插入图片描述

四、尝试在docker上登录并上传镜像

docker login -u admin -pHarbor12345 172.16.16.200添加标签:docker tag centos7.8tomcat:v1  172.16.16.200/y2001/centos7.8tomcat:v1登录harbor仓库:docker login -uadmin -pHarbor12345 172.16.16.200注意:如果这里报错解决方法查看网络是否可以连通,查看/etc/docker/daemon.json是否有添加信任,[root@localhost ~]# vim /usr/lib/systemd/system/docker.service 是否有添加信任链接/usr/lib/systemd/system/docker.service修改配置文件添加一下代码:--insecure-registry=172.16.16.200 加上你自己设置的hostname: 127.16.16.200 //设置你的主机名添加到:ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --insecure-registry=172.16.16.200重启:[root@123456 harbor]# systemctl daemon-reload[root@123456 harbor]# systemctl restart docker上传镜像到harbor仓库(注意这个仓库需要安装java-jdk和tomcat服务后面的jenkins服务器推送镜像需要)docker push 172.16.16.200/y2001/centos7.8tomcat:v1

搭建git

在172.16.16.90主机上操作

一、安装git

yum install -y git

二、创建git用户设置密码

adduser gitpasswd 123

三、创建仓库目录并初始化仓库

su – gitmkdir /home/git/demo.gitcd /home/git/demo.git//初始化git仓库git --bare init

搭建jenkins

在172.16.16.200主机上操作

一、安装jenkins所需环境1、安装mavenyum install -y maven

2、安装jdk

yum install -y java

3、安装tomcat

tar xf apache-tomcat-8.3.5.tar -C /usr/local

4、安装git和docker

yum install git配置云的docker-ce源:# step 1: 安装必要的一些系统工具sudo yum install -y yum-utils device-mapper-persistent-data lvm2# Step 2: 添加软件源信息sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo# Step 3: 更新并安装Docker-CEsudo yum makecache fastsudo yum -y install docker-ce# Step 4: 开启Docker服务sudo service docker start安装dockeryum install docker-ce查看版本docker -v

5、删除tomcat所有的网页文件并将jenkins解压到ROOT下

cd /usr/local/tomcat/webapps/ROOTrm -rf ./*unzip jenkins.war开启tomcat服务/usr/local/tomcat/bin/startup.sh

6、设置信任172.16.16.200harbor仓库

curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.iovi /etc/docker/daemon.json{"registry-mirrors": ["http://f1361db2.m.daocloud.io"],"insecure-registries":["172.16.16.200"]}systemctl restart docker

7、生成ssh密钥对传送给git仓库主机

ssh-keygenssh-copy-id git@172.16.16.90验证是否有创建成功秘钥

在这里插入图片描述

注意:如果这里报错解决方法查看网络是否可以连通,查看/etc/docker/daemon.json是否有添加信任,[root@localhost ~]# vim /usr/lib/systemd/system/docker.service 是否有添加信任链接/usr/lib/systemd/system/docker.service修改配置文件添加一下代码:--insecure-registry=172.16.16.200 加上你自己设置的hostname: 127.16.16.200 //设置你的主机名添加到:ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --insecure-registry=172.16.16.200重启:[root@123456 harbor]# systemctl daemon-reload[root@123456 harbor]# systemctl restart docker

8、从共开的git仓库下载课件代码文件

cd java-demovi .git/config     //.git为隐藏文件目录[core]        repositoryformatversion = 0        filemode = true        bare = false        logallrefupdates = true[remote "origin"]        url = git@172.16.16.90:/home/git/demo.git    //将这个参数修改为自己创建的git仓库地址和仓库路径,通过ssh方式        fetch = +refs/heads/*:refs/remotes/origin/*[branch "master"]        remote = origin        merge = refs/heads/master

9、将java-demo课件代码上传到自己的git仓库上

git add .git commit -m “all”git push origin master

10、尝试能否在jenkins主机上上传到harbor仓库

11、打开网页访问192.168.70.100(jenkins主机)的8080端口
密码是在tomcat的logs日志中 vim catalina.out 查找密码password

配置jenkins流水线工作

登录jenkis服务器上输入密码现在推荐安装:

在这里插入图片描述
二、选择选择安装
如果网络不好出现太多的插件安装失败可以先进入jenkins然后修改下载源,再重新下载
1、修改下载源
在这里插入图片描述
再选择
在这里插入图片描述
再选择
在这里插入图片描述

将Update Site修改为http://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json再Submit----check now

三、创建新的凭据

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
四、选择Store scoped to Jenkins 创建新的流水线项目
选择流水线—输入项目名称
点击:新建Item
在这里插入图片描述
五、选择this project is parametenzied----string Parameter
在这里插入图片描述
输入 Name 为 Branch —Default Value 为master ----Description 代码分支

六、再最下方输入脚本

node {    // 拉取代码   stage('Git Checkout') {        checkout([$class: 'GitSCM', branches: [[name: '*/master']], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[credentialsId: '2803aef3-b8bc-456e-ab84-ad99d087a482', url: 'git@172.16.16.90:/home/git/demo.git']]])   }   // 代码编译   stage('Maven Build') {        sh '''        /usr/bin/mvn clean package -Dmaven.test.skip=true        '''   }   // 项目打包到镜像并推送到镜像仓库   stage('Build and Push Image') {        sh '''        echo '         FROM 172.16.16.200/y2001/centos7.8tomcat:v1        MAINTAINER zl        RUN rm -rf /usr/local/tomcat/webapps/*        ADD target/*.war /usr/local/tomcat/webapps/ROOT.war         ' > Dockerfile         docker build -t 172.16.16.200/y2001/centos7.8tomcat:v2 .        docker login -uadmin -pHarbor12345 172.16.16.200        docker push  172.16.16.200/y2001/centos7.8tomcat:v2 '''   }   // 部署到Docker主机   stage('Deploy to Docker') {        sh '''        docker rm -f java-demo |true        docker image rm 172.16.16.200/y2001/centos7.8tomcat:v2 |true        docker login -uadmin -pHarbor12345 172.16.16.200        docker run -itd --name java-demo -p 88:8080 172.16.16.200/y2001/centos7.8tomcat:v2 /bin/bash '''   }}

七、创建项目

在这里插入图片描述
八、访问jenkin主机的IP地址的88端口
在这里插入图片描述

转载地址:http://fgnihz.baihongyu.com/

你可能感兴趣的文章
POJ - 1321 棋盘问题 【dfs】
查看>>
【自制】csdn自定义模块栏目 个性化 【美化个人简介】
查看>>
【Top 10 Essential Eclipse Plugins】Java 开发的 10 大必备 Eclipse 插件
查看>>
【Top 9】2020 年九大顶级 Java 框架
查看>>
【已解决】docker for windows could not read CA certificate问题
查看>>
基于 Docker搭建 WordPress动态博客【所需文件:docker-compose.yml】
查看>>
win10家庭版安装 Docker for Windows
查看>>
【Win10】搭建个人博客 Hexo框架 (自制)
查看>>
【Win10】Hexo 搭建个人主页 (一)解决所有文章,缺失模块问题
查看>>
【Win10】Hexo 搭建个人主页 (二)配置图片资源
查看>>
【Win10】Hexo 搭建个人主页 (六)修改代码块样式
查看>>
【Win10】Hexo 搭建个人主页 (七)增加不蒜子统计(详细)
查看>>
【Win10】Hexo 搭建个人主页 (八)添加Gitment评论系统(中文版本已解决)
查看>>
gulp加速hexo的yelee主题
查看>>
用katex引擎(markdown渲染加速) hexo的 yelee 主题
查看>>
ERROR Process failed: about/index.md
查看>>
【置顶-必看】博主的个人主页 (欢迎一起交流学习)
查看>>
hexo+github+coding 搭建个人博客,你要的 大佬资料 都在这(项目完结整理)
查看>>
ES6 一文弄懂 var let const 三剑客区别 吊打面试题
查看>>
ES6 面试题:你可以写出一百个 div 吗?一万个呢?
查看>>