CICD构建实验「建议收藏」

CICD构建实验「建议收藏」CICDCICD是一个可以集部署、拉取、上传等于一体的架构环境,它支持一线进行部署,免去了人工一条条的进行部署环境的工作流程,大大降低了人力手工运维成本和出错率。CICD的搭建需要至少三台服务器,他们分别监管着Harbor(镜像仓库存储),git(开发代码仓库存储),Jenkings(一键化部署)企业级镜像Harbor部署docker镜像级的存储可以储存在dockerhub上,也可以储存在自建本地仓库上,而Harbor属于本地仓库的其中一种,该软件可以提供图形化界面操作,安装简单,且方便查看。

大家好,又见面了,我是你们的朋友全栈君。

CICD

CICD是一个可以集部署、拉取、上传等于一体的架构环境,它支持一线进行部署,免去了人工一条条的进行部署环境的工作流程,大大降低了人力手工运维成本和出错率。
CICD的搭建需要至少三台服务器,他们分别监管着Harbor(镜像仓库存储),git(开发代码仓库存储),Jenkings(一键化部署)

企业级镜像Harbor部署

docker镜像级的存储可以储存在docker hub 上,也可以储存在自建本地仓库上,而Harbor属于本地仓库的其中一种,该软件可以提供图形化界面操作,安装简单,且方便查看。
它是一个类似docker hub的可以使用浏览器进行登录操作查看的软件,又不需要像docker hub需要直接网上拉取,导致容易出现丢包、拉取失败的现象,因此国内很多企业都会将安装包存放于此。

安装

1)首先需要一台虚拟机,在搭建好docker和compose的情况下才能进行Harbor的下载,其中Harbor的下载有多种,有在线安装(通过docker hub下载镜像),这边讲的就是离线下载,即直接安装安装包。安装包可以通过官方地址:https://vmware.github.io/harbor/cn/ 去进行下载

2)准备一台虚拟机,其ip地址为192.168.53.10,将下载好的Harbor安装包拉入到虚拟机中。

3)安装docker:
创建docker专用下载通道:

yum install -y yum-utils
yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

开启存储库
yum-config-manager --enable docker-ce-nightly
yum-config-manager --enable docker-ce-test

安装docker
yum install docker-ce docker-ce-cli containerd.io

安装完成后使用命令使docker永久开启
systemctl start docker
systemctl enable docker

4)安装compose(可以直接将编辑好的compose放置/usr/local/bin下,并且更改为可执行文件即可)

5)解压Harbor压缩包,并且将压缩包放置在/usr/local目录下:
tar -xf harbor-offline-installer-v1.9.1.tar

6)修改文件vi /etc/docker/daemon.json ,添加如下代码:

{"insecure-registries":[“192.168.9.10"]}			\\更改成自己Harbor的IP地址

systemctl restart docker		\\重启docker

7)进入解压好的harbor文件中,编写vim harbor.yml,将hostname改为自己的地址
在这里插入图片描述

8)./prepare
./install.sh
进行安装

8)当完成安装后,即可通过本机地址进行浏览器的访问,账户名为admin,密码默认为Harbor12345

9)当我们上传某个镜像的时候,即可通过tag改名(harbor的ip地址/存放的标签/文件名:标签)来进行改名,并且上传。
上传的话首先需要进行登录,登录的形式为docker login ip地址 -uadmin -pHarbor12345 的形式来登录,如果忽略了后面的一步,系统会默认登录到docker hub网页
在这里插入图片描述

在这里插入图片描述

10)创建存放镜像的项目页(也可以称之为目录)
在这里插入图片描述

11)上传镜像,第一步,登录:docker login 192.168.53.10 -uadmin -pHarbor12345
12)第二步,镜像改名: docker tag hello-world 192.168.53.10/xiaoyang/hello-world:v1
13)第三步,上传镜像:docker push 192.168.53.10/xiaoyang/hello-world:v1
14)第四步:验证,可以在xiaoyang的项目页中进行查看
15)为了完成DIDC的实验,需要提前将tomcat镜像放置在harbor的项目中
在这里插入图片描述

git 开发语言存放仓库

Harbor是用于镜像的存放的,而git则是用于开发语言的存放的,二者分工不同,但却是架构中的一员,现实中,最首先由开发工作人员上传代码和数据进入git,而后由运维从Jenkings来进行一键化的部署
需要新开一台服务器:192.168.53.20

安装

1)安装git首先需要拥有ssh软件,但是该程序linux是自带拥有的,所以可以直接进行下载,如果没有ssh,可以使用:yum install openssh.x86_64来进行下载
2)yum install -y git 下载git,也可以通过官网中下载安装包进行拉取
git官网:https://mirrors.edge.kernel.org/pub/software/scm/git/

3)使用git version命令可以查看git版本,同时也可以进行查看git是否进行安装
4)创建用户,用户名字随意,但是尽量还是使用和git相关的名字
useradd gitme
passwd 123
5)切换到gitme用户
6)

mkdir demo.git		#创建名为demo.git的用户
cd demo.git/	
git --bare init 		#在该目录下,初始化仓库

jenkings一键部署

jenkings是一款可以实现一键化部署的软件,以往,一个开发软件或者app的部署需要从测试到上线起码需要一天的时间,而jenkings通过与其他服务器的联动的,大大简化了到正式上线为止的繁琐步骤,所以,这也是jenkings被人选择的原因。
需要新开一台服务器:192.168.53.30

安装

1)准备材料:jenkings主机上需要安装docker、tomcat、java文件等,其中,docker是为了进行部署,tomcat、jdk则是为了进行java代码的编译(jenkings需要接触java)
2)yum -y install java 安装java模块
3)yum -y install maven
4)docker安装略,而后将tomcat的安装包拉进/usr/local的目录中,进入tomcat的bin目录下,输入./startup.sh启动tomcat
5)为了不影响使用,需要将tomcat的webapps里的目录删除,只留ROOT
6)将.war包放入到ROOT下
7)将.war包用unzip解压
上述为源代码安装,yum安装如下:

wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key		#导入公钥
yum install jenkins

#通过java命令可以查看jenkins是否正常下载完成
java -jar /usr/lib/jenkins/jenkins.war --httpPort=端口号	#命令可以开启jenkins
#该端口号不可与别的端口号重复

开启过后可以直接使用端口ip地址:端口号 来进行浏览器访问
在这里插入图片描述

8)从镜像平台拉包,并且更改,此操作先不要开启tomcat或者jenkings

git clone https://github.com/407777853/java-demo
cd java-demo/
vi .git/config 
[core]
        repositoryformatversion = 0
        filemode = true
        bare = false
        logallrefupdates = true
[remote "origin"]
        url = gitme@192.168.53.20:/home/gitme/demo.git			#修改这一步为自己的git服务器
        fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
        remote = origin
        merge = refs/heads/master

8)cd java-demo

git add .		#添加该代码进入存储git库
git status		#查看git库
git commit -m "all"	
[root@localhost java-demo]# git push origin master
Everything up-to-date

9)免密登录

ssh-keygen 
ssh-copy-id gitme@192.168.53.20

10)根据内容提示cat /root/.jenkins/secrets/initialAdminPassword,来将密码复制粘贴并且放置在浏览器中。
11)根据推荐来安装相应的模块
12)可以进行注册登录
在这里插入图片描述

13)上传jenkings的私钥到网页上:cat /root/.ssh/id_rsa
14)添加凭据,将类型改为SSH Username with private key
在这里插入图片描述

15)而后在凭据中会生成该凭据id
在这里插入图片描述

16)新建item,选择流水线(已安装好的模块)
在这里插入图片描述
在这里插入图片描述

stage为任务项
这边要注意的是checkout这一列需要将对应的凭据ID更改,并且指向git服务器
其余的为镜像服务器,并且要确保路径和你的Harbor项目对应

17)执行Build now命令开始构建
18)而后便可以完成一键部署

备注

如果没构建成功,有以下可能:
1、所需要的模块因为网络等问题并没有下载成功
2、脚本配置文件中的IP地址和指向地点有没有写对的遗漏地点

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/137966.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • 本周半价(12.16-12.22)电子书

    本周半价(12.16-12.22)电子书

  • 超详细讲解SpringMVC三层架构

    超详细讲解SpringMVC三层架构SpringMVC三层架构javaSpringMVC的工程结构一般来说分为三层,自下而上是Modle层(模型,数据访问层)、Cotroller层(控制,逻辑控制层)、View层(视图,页面显示层),其中Modle层分为两层:dao层、service层,MVC架构分层的主要作用是解耦。采用分层架构的好处,普遍接受的是系统分层有利于系统的维护,系统的扩展。就是增强系统的可维护性和可扩展性。对于Spring这样的框架,(View\Web)表示层调用控制层(Controller),控制层调用业务层(Servi

  • 手机adb shell命令_adb devices找不到设备

    手机adb shell命令_adb devices找不到设备随时随地阅读更多技术实战干货,获取项目源码、学习资料,请关注源代码社区公众号(ydmsq666)、博主微信(guyun297890152)、QQ技术交流群(183198395)。1.显示系统中全部Android平台:androidlisttargets2.显示系统中全部AVD(模拟器):androidlistavd3.创建AVD(模拟器):android…

    2022年10月17日
  • vue JS 对象转数组[通俗易懂]

    vue JS 对象转数组[通俗易懂]option:{ head:{ title:”日期”, name:date, width:180 }, data:{ date:”2021-05-27″, name:”张三”, address:”上海市浦东新区XX路XX号” } }转数组:letoption=this.option;letArr=Object.keys(option).map(k

  • 如何安装sqlmap(怎么看python安装成功)

    第一步:下载python:https://www.python.org/downloads/(这里有python各种版本,但是一般建议安装3和2.7)sqlmap:https://github.com/sqlmapproject/sqlmap/tarball/master第二步:在Windows我的电脑》属性》高级》环境变量里找到p…

  • unity中application(3D自动保存路径)

    iOS/Android/Windows平台应用存储路径,Unity3D在各平台的路径,Application.dataPath/Application.streamingAssetsPath/Application.temporaryCachePath/Application.persistentDataPath

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号