Jenkins Docker的自动化CI/CD实践

发布时间:2024-07-12 点击:79
云计算
上面左边是我的个人微 信,如需进一步沟通,请加好 友。 右边是我的公众号“openstack私有云”,如有兴趣,请关注。
很久都想动手实践一下所谓的ci/cd持续集成开发,主要是工作中没有用到,另外对开发这一块领域也不是特别熟悉,现在基础设施自动化不就是为了为上层应用服务的吗,开发部门也是爷啊,也需要伺候好,哈哈。
简单介绍哦一下ci/cd的概念,字面意思就是持续集成/持续部署或交付 ,说明如下:
持续集成(continuous integration,ci):在持续集成环境中,开发人员会频繁(一日多次)的提交代码测试,在构建之前必须先通过单元测试,有一个测试用例失败就不能集成继续,这样目的是快速发现问题和修复。然后代码构建、部署、测试,再对测试结果进行反馈,不断执行这个过程。
持续部署(continuous deployment,cd):持续部署是可以灵活的将项目部署到任意环境,如测试环境、预生产环境、生产环境,以便质量团队或用户使用,发现问题及反馈。
持续交付(continuous delivery,cd):将最终产品发布到生产环境,给用户使用。
下面这张图是通过git docker register jenkins docker 实现ci/cd的一个简单示意图(来自网上)。
可以看到,逻辑关系还是很简单的,就是开发人员将开发代码上传到git,触发jenkins的自动代码编译并构建镜像,将镜像推送到docker仓库,比如harbor,测试环境或生产环境再从docker仓库中拉取镜像部署。
废话不多少,开始规划开干。
发布流程如下:
1.开发语言:java
2.项目代码版本管理:git
3.代码编译:maven
4.持续集成:jenkins
5.交付:以docker镜像形式进行交付,提交至镜像仓库
6.部署:docker主机创建容器
环境规划如下:
jenkins 192.168.1.46
docker 192.168.1.45
git/registry 192.168.1.44
操作系统:centos7.2
镜像名称格式:
项目名-模块名:代码版本(tag)
工作流程:
1.开发人员提交代码到git版本仓库;
2.jenkins人工/定时触发项目构建;
3.jenkins拉取代码、代码编译、打包镜像、推送到镜像仓库;
4.jenkins在docker主机创建容器并发布
部署git仓库
在192.168.1.44 主机安装git,如下:
1.安装git#yuminstallgit-y2.创建git用户并设置密码#useraddgit#echogit|passwd--stdingit3.创建仓库su-gitmkdirsolo.gitcdsolo.gitgit--bareinit4.访问创建的这个仓库#gitclonegit@192.168.1.44:/home/git/solo.git
上传项目到git仓库
从github上找了一个开源的java博客项目作为演示。拉取代码#gitclonehttps://github.com/b3log/solo.git添加私有仓库地址#cdsolo/#gitremoteremoveorigin#gitremoteaddorigingit@192.168.1.44:/home/git/solo.git提交到私有仓库#gitadd.#gitcommit-m"all"#gitpushoriginmaster
在192.168.1.45 安装docker与配置java环境,如下:
1.安装依赖包#yuminstall-yyum-utilsdevice-mapper-persistent-datalvm22.添加docker软件包源:#yum-config-manager\\\\--add-repo\\\\https://download.docker.com/linux/centos/docker-ce.repo3.安装dockerce#yuminstalldocker-ce-y4.配置加速器#curl-sslhttps://get.daocloud.io/daotools/set_mirror.sh|sh-shttp://bc437cce.m.daocloud.io5.启动并开机启动#systemctlstartdocker#systemctlenabledocker6.安装java和maven环境首先在oracle官网下载jdk安装包jdk-8u192-linux-x64.tar.gz#tarzxfjdk-8u192-linux-x64.tar.gz#mvjdk1.8.0_192/usr/local/jdk1.8#wgethttps://archive.apache.org/dist/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.tar.gz#tarzxfapache-maven-3.5.4-bin.tar.gz#mvapache-maven-3.5.4/usr/local/maven3.5#vi/etc/profilemaven_home=/usr/local/maven3.5java_home=/usr/local/jdk1.8path=$path:$java_home/bin:$maven_home/binclasspath=.:$java_home/lib/dt.jar:$java_home/lib/tools.jarexportjava_homepathclasspath#source/etc/profile7.安装git,需要在jenkins运行pipeline的时候需要用到git:yuminstallgit-y
安装jenkins
jenkins是一个开源软件项目,是基于java开发的一种持续集成工具,用于代码编译、部署、测试等工作。
jenkins也是一个跨平台的,大多数主流的平台都支持,而且安装很简单,我们这里以部署war包方式安装它。
下载地址:https://jenkins.io/download
在192.168.1.46主机安装jenkins,下载tomcat二进制包将war包到webapps下即可:
先安装java环境,#tarzxfjdk-8u192-linux-x64.tar.gz#mvjdk1.8.0_192/usr/local/jdk1.8#vi/etc/profilejava_home=/usr/local/jdk1.8path=$path:$java_home/binclasspath=.:$java_home/lib/dt.jar:$java_home/lib/tools.jarexportjava_homepathclasspath#source/etc/profile#wgethttp://mirrors.jenkins.io/war-stable/latest/jenkins.war#wgethttp://mirrors.shu.edu.cn/apache/tomcat/tomcat-8/v8.5.37/bin/apache-tomcat-8.5.37.tar.gz#tarzxfapache-tomcat-8.5.37.tar.gz#mvapache-tomcat-8.5.37/usr/local/tomcat-jenkins#rm/usr/local/tomcat-jenkins/webapps/*-rf#unzipjenkins.war-d/usr/local/tomcat-jenkins/webapps/root#cd/usr/local/tomcat-jenkins/bin/#./startup.sh#tail-f../logs/catalina.out...jenkinsinitialsetupisrequired.anadminuserhasbeencreatedandapasswordgenerated.pleaseusethefollowingpasswordtoproceedtoinstallation:a832e00bc8c3484698f74862a3a2459athismayalsobefoundat:/root/.jenkins/secrets/initialadminpassword...
部署成功,访问jenkins:http://192.168.1.46:8080
注意在防火墙上将8080端口打开:
firewall-cmd –add-port=8080/tcp
firewall-cmd –add-port=8080/tcp –permanent
输入上面日志输出的密码:a832e00bc8c3484698f74862a3a2459a,或者从本机/root/.jenkins/secrets/initialadminpassword文件获取,点击继续,选择安装推荐的插件。
等待一会儿安装插件完成。之后创建第一个管理用户:
账号密码admin 。接下来对jenkins进行配置:
名称:slave节点名字
并发构建数:

域名注册的创意四大法则\"
更改主机型号续费-虚拟主机/数据库问题
电脑中最新的AMD显卡驱动更新失败怎么解决
怎么样给阿里云服务器续费
分类信息盈利模式探索:社区快告
新人参拼团云服务器优惠
网站无法打开如何解决所谓的提示
vps云主机如何