基于docker+GIT+tomcat+jenkinsd搭建CI/CD部署

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

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

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

CI/CD示意图
基于docker+GIT+tomcat+jenkinsd搭建CI/CD部署_第1张图片
基于docker+GIT+tomcat+jenkinsd搭建CI/CD部署_第2张图片
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-CE
sudo yum makecache fast
sudo 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-compose

curl -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.io

vi /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+GIT+tomcat+jenkinsd搭建CI/CD部署_第3张图片
四、尝试在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 git
passwd 123

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

su – git
mkdir /home/git/demo.git
cd /home/git/demo.git
//初始化git仓库
git --bare init

搭建jenkins

在172.16.16.200主机上操作

一、安装jenkins所需环境
1、安装maven
yum 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-CE
sudo yum makecache fast
sudo yum -y install docker-ce# Step 4: 开启Docker服务
sudo service docker start
安装docker
yum install docker-ce
查看版本
docker -v

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

cd /usr/local/tomcat/webapps/ROOT
rm -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.io

vi /etc/docker/daemon.json
{"registry-mirrors": ["http://f1361db2.m.daocloud.io"],
"insecure-registries":["172.16.16.200"]}
systemctl restart docker

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

ssh-keygen
ssh-copy-id [email protected]
验证是否有创建成功秘钥

在这里插入图片描述

注意:如果这里报错解决方法查看网络是否可以连通,查看/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-demo
vi .git/config     //.git为隐藏文件目录
[core]
        repositoryformatversion = 0
        filemode = true
        bare = false
        logallrefupdates = true
[remote "origin"]
        url = [email protected]:/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

三、创建新的凭据
基于docker+GIT+tomcat+jenkinsd搭建CI/CD部署_第4张图片
基于docker+GIT+tomcat+jenkinsd搭建CI/CD部署_第5张图片
基于docker+GIT+tomcat+jenkinsd搭建CI/CD部署_第6张图片
在这里插入图片描述
四、选择Store scoped to Jenkins 创建新的流水线项目
选择流水线—输入项目名称
点击:新建Item
基于docker+GIT+tomcat+jenkinsd搭建CI/CD部署_第7张图片
五、选择this project is parametenzied----string Parameter
基于docker+GIT+tomcat+jenkinsd搭建CI/CD部署_第8张图片
输入 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: '[email protected]:/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端口

你可能感兴趣的:(虚拟化)