子任务2:搭建DevOps流水线环境
本实验以主机本地虚拟机为载体,搭建Dev-ops流水线环境
使用的工具:
目录
一、实验概述
1.实验名称
2.实验目的
3.实验环境
二、实验内容
1.实验设计
2.实验过程
1.gitlab-server的搭建
2.harbor-server的搭建
3.Jenkins-server的搭建
4.Web-server的搭建
5.Dev搭建
6.工具集成配置
7.Jenkins插件安装
8.Jenkins全局工具配置
9.Jenkins系统配置
10.搭建数据库环境
11.开发代码,上传至gitlab仓库
12.在harbor-server上构建运行应用基础容器镜像
13.在jenkins-server上构建jenkins应用
三、实验总结
1.主要工作与收获
2.存在问题与展望
一、实验概述
1.实验名称
搭建DevOps流水线环境。
2.实验目的
DevOps已经成为解决软件开发过程中出现的缓慢、孤立或其它故障的默认方式。
假想你作为一家企事业单位软件研发部门技术负责人,为提高软件开发、部署效率,需要搭建一个DevOps流水线环境
(1)以本地虚拟机为载体,以Docker容器形式实践DevOps应用方案
(2)该方案应实现从应用开发、测试,到应用部署上线的完整过程
(3)在应用方案中要以具体的一种开发语言java/python开发一个简单的应用。
该应用必须要有完整的一个界面。可以相对简单,但必须完整。
3.实验环境
主机dev:
OS:Windows 11 专业版
IP:因网络状态而定
Gitlab-server:
OS:Ubuntu 20.04.5
IP:192.168.61.130
Harbor-server:
OS:Ubuntu 20.04.5
IP:192.168.61.131
Jenkins-server:
OS:Ubuntu 20.04.5
IP:192.168.61.132
Web-server:
OS:Ubuntu 20.04.5
IP:192.168.61.133
二、实验内容
1.实验设计
-
- gitlab-server的搭建
- harbor-server的搭建
- Jenkins-server的搭建
- Web-server的搭建
- Dev搭建
- 工具集成配置
- Jenkins插件安装
- Jenkins全局工具配置
- Jenkins系统配置
- 搭建数据库环境
- 开发代码,上传至gitlab仓库
- 在harbor-server上构建运行应用基础容器镜像
- 在jenkins-server上构建jenkins应用
2.实验过程
先决条件:本次dev-ops流水线需要使用的五台主机中,dev为我所拥有的笔记本电脑,剩下的gitlab-server、harbor-server、jenkins-server和web-server均为由Ubuntu20.04.5虚拟机克隆而来,被克隆虚拟机中本身有docker环境,因此本次虚拟机环境搭建并没有涉及docker的安装,但会通过查看docker版本来表示本机安装了docker。
1.gitlab-server的搭建
该步的内容请查看我的另一篇博客:
云计算课程-Ubuntu系统搭建gitlab_猪猡猪猡猪的博客-CSDN博客
2.harbor-server的搭建
该步的内容请查看我的另一篇博客:
云计算课程-Ubuntu系统搭建harbor仓库_猪猡猪猡猪的博客-CSDN博客
3.Jenkins-server的搭建
该步的内容请查看我的另一篇博客:
云计算课程-Ubuntu系统搭建jenkins服务_猪猡猪猡猪的博客-CSDN博客
4.Web-server的搭建
web-server的IP地址:192.168.61.133
Web-server只需要安装docker即可
由于该虚拟机是由有docker环境的虚拟机克隆而来,因此已有docker
5.Dev搭建
本次实验使用windows11主机作为dev主机进行开发,已有git工具
6.工具集成配置
1. 配置docker主机使用harbor
Jenkins-server主机、harbor-server主机、web-server主机都是安装了docker环境的主机,需要配置上述三个主机使用harbor
Harbor-server主机的信息:
Harbor仓库地址:http://192.168.61.131
用户名:admin
密码:123456
① 对于web-service主机
老师所给博客上的步骤:
实际操作步骤:
#apt update(若已经更新,可以跳过该步)
#apt install vim(若已安装,可以跳过该步)
打开/etc/docker/daemon.json文件
修改内容如下:
重启docker使配置文件生效:
登陆时,使用用户名admin,密码123456
报错如下:
在主机上进行访问:
发现也无法访问,继续运行harbor-server,看看是否可以在本机上正常使用
发现在harbor-server上也访问不了,
尝试关闭重启一下harbor服务
使用的指令是:
#docker-compose down -v
#docker-compose up -d
重启之后,打开内置浏览器并访问
成功!可以回到web-server继续进行配置
使用docker login,连接到harbor-server 192.168.61.131
使用用户名admin,密码123456
② 对于harbor-server主机
老师所给博客上的步骤:
实际操作步骤:
#vim /etc/docker/daemon.json
修改配置文件,添加harbor仓库信赖
重启docker,重新加载配置文件
登录harbor,用户名admin,密码:123456
花开二度,又报错了
将harbor服务关闭再重启
再次登录,用户名admin,密码123456
③ 对于jenkins-server主机
老师所给的博客上的步骤
实际的步骤:
修改配置文件:
#vim /etc/docker/daemon.json
修改内容如下:
配置,重启,登录
这一次一气呵成。
2. 配置jenkins主机使用docker
在jenkins-server主机上进行配置即可。
3. 密钥配置
① Dev主机连接至gitlab-ce
先在dev主机上生成密钥对:
记事本打开C:\Users\Piggy\.ssh目录下的id_rsa.pub文件
以ssh-rsa开头的一大串内容是公钥
我的公钥内容为:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDLBOc9ryBK+2uVgI1+YOm4K9dzb1JajlTQvLFCRjarGv5RyB2Ay91rvql6FysRNFiw33n/TXjqzXCsTyibethvYwg70M1Efs0uPUPIYGX51aAqxmzyixNlZsH588oipLJRKHkqfbMWlHPZbt6IFTM0O0z8xOhVozWpkloDY0we6kTSmARSWeHhIJxnnIjCpv07ToIXANc4THlXcfZpnvSHM2ZOIb7oyomyE4ltHQPoQ8iLWuRotj7z0anWJijiaUFtOKxuRVWQJe9gOFJ2BjhzmnoNaS/nF6Ek8pnBqLS/zdYYOe9PdwM3PDi+Mi7kGSgNk2Juws0FQIn2NE+xL/d2yGxDSbGc6DqB6+hbwab1K54oqoYN9MoOEZj8tP/3c5FeRMnODl4NlvIGheCK/4ch37NOtNn0TTunuxXyFQtlw3MRDp4ZRURr3O6+kealo1HgV+vYipsBEujONoXagtXLpg/vRXGrwzU/HNuyYUM9WdIXqp17hTmCr4C9IXvtRF0= 猪猡@DESKTOP-341P8RO
接下来,将公钥添加到gitlab-ce中
正想要添加时,出现了gitlab访问不了的情况
(如果gitlab能正常访问,可以跳过此步处理)
回到gitlab-server,对gitlab服务进行重启
重启gitlab服务的命令为:
# gitlab-ctl restart
重启的输出如下:
还是没办法访问,尝试用ifconfig查看网卡情况
发现ens33的网卡消失了
此时,因为ens33网卡的消失,ping不通baidu
重启ens33的命令为:
# sudo dhclient ens33
再次访问,就可以看到ens33网卡重新开启了
再次试试打开gitlab:
访问成功
接下来要进行gitlab的ssh密钥配置
进行登录
用户名是root,密码是搭建gitlab时,要求用户改变的
按上图流程操作,将刚刚生成的公钥放入此处:
点击add key以后,会跳转到此页面:
这样就算是配置好了dev主机和gitlab-ce的ssh连接
② Jenkins-server主机连接至gitlab-ce
在jenkins-server主机上生成密钥对:
查看公钥:
生成出来的公钥内容为:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDZ0VmQ//bd/ySo4cs4RqAgPJdyTeHqUL/B/cL7iuoVP4wJN7WtQxHFsDWaDKT1J7fYCHKEWZWlSM+Mak51Sf/egsw3kRNOrEx9b5yqAevvFBue0PLqpZvC8F8BlN3nmx68uZGyJJ0xLlQmRjTOVDnPDyjEiM//uOgABpVtgi4uFU3SDmjInmCXsOcFjzD4uffwHHXIqHVaEdZusoG9SXKg62iz9d7OG7eV7rqjUHy6FHl2ZKfvhmAthiYcVHfJQYIvEZ3IbZF8ftQivL9UxcGdQLiidaRUv5avEesg/GpoD4fii9IFxV7m6S3Y8M47GIslBgjVVJLFRW2HWZpFkZ5gTaHj7ZTTCF9wjeOjq0bDBpLdC5BMyVV0kkn847WRQDmsbWR+bSxxBiF91tGQ2FajrCV4mp/qNGInoBEOyHU13r3VChjKaYNDzpe8SBygGenQSfFq8vC4YLGyqW17QJFAc3oMnwYn0XmmeZ5ECtyGoC92Ysz6FHo/fri1cZ8WDZ8= root@zhuluolin-virtual-machine
按照上述方法进行添加,可以看到,gitlab中已经有两个ssh连接了
此时,私钥也需要进行配置
Jenkins-server主机的私钥应该被配置到jenkins服务的凭据列表
查看jenkins-server主机的私钥:
私钥的内容即包括begin和end行的内容
打开jenkins服务:192.168.61.132:8080
出现了jenkins的登录页面:
安装jenkins时已经设置,用户名为admin,密码为123456
进入jenkin后,点击manage Jenkins – manage Credentials
点击global
添加一条凭据:
在enter directly下,输入私钥内容
输入上述内容以后,点击create,会显示下图的内容:
这样就添加好了
7.Jenkins插件安装
- 安装maven integration
该插件用于编译java项目
打开jenkins,点击manage plugins管理插件
点击available plugins可选插件
输入maven查找相关内容
第一个(Maven Integration)就是我们所需要的
点击下载
这样就安装好了maven integration
- Git parameter插件
用于基于git版本提交进行参数构建项目
安装成功。
- gitlab插件
该插件用户jenkins-server拉去gitlab项目
安装成功
- generic webhook trigger
该插件用于项目的自动化构建
安装成功。
- ssh
该插件用于jenkins-server对web-server实施项目部署
这个红色的报错信息可以先不管它。目前对于我们要搭建的dev-ops模型来说暂时不构成影响。
安装成功
8.Jenkins全局工具配置
打开jenkins的全局工具配置
即global tool configuration
- jdk配置
查看当前jdk的信息
查看发现,$JAVA_HOME的输出为空
为什么呢?
原因是jenkis-server主机使用apt install安装jdk
这是不会自动将JAVA_HOME内置到环境变量中的
可以先查看java安装在哪里
可以知道,java安装在/usr/bin/java下
输出这个目录的内容:
可以发现,java是由alternatives进行管理的
即,可以在系统中设置并切换多个jdk版本
因此,可以通过alternatives查看可用的java版本
由此,可以得知,java的安装路径为:
/usr/bin/jvm/java-11-openjdk-amd64/bin/java
接下来可以设置JAVA_HOME了
# vim /etc/profile
打开配置文件后,在文件的末尾加上如下内容
退出文件编辑
重新加载资源文件
# source /etc/profile
再次查看java home内容:
此时就将java写入了环境变量中
现在,打开jenkins服务页面
点击 manage Jenkins,选择global tool configuration
- git配置
先看一下jenkins-server主机上安装的git工具版本
- maven配置
先查看maven的版本信息
这里的MAVEN_HOME也没有显示内容
需要手动进行配置:
# vim /etc/profile
在文件末尾写入如下内容:
退出文件编辑
重新加载配置文件:
# source /etc/profile
查看maven home的信息:
现在,进入jenkins 的服务页面,配置maven 的内容
按照如上内容进行配置即可。
9.Jenkins系统配置
该步的内容请查看我的另一篇博客:
云计算课程-DevOps流水线中jenkins的系统配置_猪猡猪猡猪的博客-CSDN博客
10.搭建数据库环境
对web-server进行操作,在上面安装数据库管理系统:
安装完成以后,mariadb会自动启动, 查看mariadb的服务运行状态
(本项目暂时不适用数据库功能)
11.开发代码,上传至gitlab仓库
- 在gitlab-server主机的gitlab服务上创建一个空的仓库
该仓库的地址:
使用ssh clone
git@192.168.61.130:root/zhuluo-yjs.git
使用http clone
http://192.168.61.130/root/zhuluo-yjs.git
- Dev主机克隆该仓库
第一次失败
第二次就差成功了
- Dev主机写含页面的springboot项目
在创建项目时,
Project sdk使用correto-11
Java版本使用java 11
页面内容为:
编写完成以后,需要将以上的项目代码上传到gitlab中
# git tag 1.0.0
为本次提交打标签,表示提交的时1.0.0版本
使用git show 可以查看到此次提交的内容
上传到仓库
返回gitlab-server仓库中进行查看
出现如上的结果,表示上传成功
12.在harbor-server上构建运行应用基础容器镜像
任务是安装与项目代码版本对应的jdk
在此,我要安装的是openjdk11
查看docker中的镜像,现在能看到openjdk11了
打开harbor,发现harbor打不开,需要处理一下
(harbor打得开的话,可以跳过处理的步骤)
进入harbor安装目录,重新启动harbor
Harbor-server 的ip地址为:192.168.61.131
Harbor服务的端口号就是80
要将openjdk镜像上传到harbor仓库中,需要先修改镜像的tag等信息
以下完成了修改tag,登录harbor,推送镜像的操作
打开harbor,查看仓库中是否已经有openjdk的信息:
现在openjdk11已经被上传到了harbor仓库中
13.在jenkins-server上构建jenkins应用
该步的内容请查看我的另一篇博客:
云计算课程-构建jenkins应用_猪猡猪猡猪的博客-CSDN博客
三、实验总结
1.主要工作与收获
主要有如下收获:文章来源:https://www.toymoban.com/news/detail-779023.html
- 安装并搭建gitlab服务
- 安装并搭建harbor服务
- 安装并搭建jenkins服务
- 配置docker与harbor之间的连接
- 配置jenkins与gitlab之间的连接
- 配置jenkins与web-server主机的连接
- 网卡的重启与配置
- 对docker更深层的理解
- 掌握dockerfile的使用
- 了解wget工具的使用
- 学会配置java、maven环境变量
- 更多的git使用技巧
- 对防火墙的理解加深
- 学会ssh服务,掌握ssh加密与连接
- Jenkins的插件及其作用
- 对dev-ops流水线全流程的搭建和了解
- 搭建mariadb数据库环境
- 掌握了springboot结合前后端内容的技术
- 对Ubuntu系统,或者说linux系统有了更深的理解
- 制作docker镜像并上传
2.存在问题与展望
希望未来能够尝试搭建使用数据库的,较为复杂的java后端源码,实现自动化部署,解决人力物力并提高迭代开发的可靠程度。文章来源地址https://www.toymoban.com/news/detail-779023.html
到了这里,关于云计算课程第四次实验-搭建DevOps流水线的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!