持续集成(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
一、搭安装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 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
在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
在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
登录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: '[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 '''
}
}