哈喽~ 大家好呀,这篇就来详细介绍 DevOps 以及需要安装什么软件。
🥇个人主页:个人主页
🥈 系列专栏:【云原生系列】
🥉与这篇相关的文章:
【云原生】3.5 RuoYi-Cloud部署实战(下) 【云原生】3.5 RuoYi-Cloud部署实战(下)_程序猿追的博客-CSDN博客 云原生讲解【扩展篇】 云原生讲解【扩展篇】_程序猿追的博客-CSDN博客 【云原生】4.1 DevOps基础 【云原生】4.1 DevOps基础与实战_程序猿追的博客-CSDN博客
目录
一、DevOps 诞生
软件开发最开始是由两个团队组成:
开发团队从头开始设计和整体系统的构建。需要系统不停的迭代更新。运维团队将开发团队的Code进行测试后部署上线。希望系统稳定安全运行。
这看似两个目标不同的团队需要协同完成一个软件的开发。那么这里就出现了一个问题,假设我在开发一款软件,开发完之后,交给了运维团队,运维团队向开发团队反馈需要修复的BUG以及一些需要返工的任务。这是开发团队在一直等候,开发人员啥也做不了,这无疑推迟了整个软件开发的周期。为了解决这类问题,诞生出了 DevOps ,专门解决开发团队与运维团队之间的沟通问题与交互问题。
二、DevOps 介绍
DevOps,字面意思是 Development & Operations 的缩写,翻译过来就是开发 & 运维(前面有一篇云原生扩展篇对此有些介绍)。
虽然字面意思只涉及到了开发团队和运维团队,其实QA测试(扩:QA 主要有两方面的工作:1.做过程中的改进 2.做质量的保证工作。)团队也是参与其中的。
百度一下可以查看到 DevOps 的符号类似于一个无穷大的符号
三、DevOps管理软件生命周期
整体的软件开发流程包括:
PLAN:开发团队根据客户的需求与目标制定开发计划与开发周期(收到需求,制定计划)
CODE:根据 PLAN 开始编码过程(一般工具用 git 或SVN)。
BUILD:编码完成后,需要将代码构建并且运行(通过 Maven 或 gradle 将他构建成一个可运行的软件)。
TEST:成功构建项目后,需要测试代码是否存在 BUG 或错误(手动测试与自动化测试)。
DEPLOY:代码经过测试后,认定代码已经准备好部署并且交给运维团队(测试无误后 TEST 发到 DEPLOY 上)。
OPERATE:运维团队将代码部署到生产环境中(通过 docker 与 k8s 进行部署)。
MONITOR:项目部署上线后,需要持续的监控产品(部署完成之后通过监控类的软件进行监控)。
INTEGRATE:然后将监控阶段收到的反馈发送回PLAN阶段,整体反复的流程就是DevOps的核 心,即持续集成、持续部署。
这就是软件开发的一套生命周期,但如果我们还要在执行一遍,我们可以根据 Jenkins 让他继续执行下去,代码啥时候测试?代码啥时候发布到运维?在吗进行部署到 k8s 与docker ?都是我们的 Jenkins来做。
最终我们得出一个结论——DevOps 强调的是高效组织团队之间如何通过自动化的工具协作和沟通 来完成软件的生命周期管理,从而更快、更频繁地交付更稳定的软件。
上图就是我们最简单的一个通过 Jenkins 来管理,那么下面我们就要基于这张图来实现功能了。
四、GitLab 与 Maven 安装
1、GitLab 安装
像我们的开发人员使用的是 Git ,这里安装 Git 就不一一列出了,可以自行百度上网安装,我们这里使用 Docker 安装 GitLab。
输入命令
查看 GitLab 镜像
docker search gitlab
获取 GitLab 镜像
docker pull gitlab/ gitlab-ce: latest
创建 docker-compose.yml 文件
version: '3.1'
services:
gitlab:
image: 'gitlab/gitlab-ce:latest'
container_name: gitlab
restart: always
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'http://192.168.11.11:8929'
gitlab_rails['gitlab_shell_ssh_port'] = 2224
ports:
- '8929:8929'
- '2224:2224'
volumes:
- './config:/etc/gitlab'
- './logs:/var/log/gitlab'
- './data:/var/opt/gitlab'
启动容器
docker-compose up -d
安装的时间有点长,请耐心等待,后面再浏览器输入你设置的地址与端口号,就能进入了。
使用默认的用户(root)以及查看密码
docker exec -it gitlab cat /etc/gitlab/initial_root_password
然后记得修改密码,密码至少长度为 8 位。
2、Maven 安装
如何安装 JDK 自行百度搜索安装
安装 Maven 包在官网里面下载需要的版本,下完之后输入指令
tar -zxvf jdk-8u231-Linux-x64.tar.gz -C/usr/local
tar -zxvf apache-maven-3.6.3-bin.tar.gz -C/usr/local
注:中间的 jdk 只是版本号,输入时记得要改。设置 Maven 的私服(阿里云或腾讯云都可以),追加 JDK 的插件(可以行百度)
接下来我们需要安装 Docker,这里可以看看之前写的文章,我是文章
五、Jenkins介绍、安装及配置
1、Jenkins 介绍
Jenkins 是一个开源软件项目,是基于Java开发的一种持续集成工具。 Jenkins 应用广泛,大多数互联网公司都采用 Jenkins 配合 GitLab、Docker、K8s 作为实现 DevOps 的核心工具。 Jenkins最强大的就在于插件,Jenkins官方提供了大量的插件库,来自动化 CI/CD 过程中的各种琐碎功 能。
Jenkins 就像一个人,安装完插件后就像穿好了装备一样
这是官方给的图(官方玩梗,最为致命)
2、Jenkins 安装
获取 Jenkins 镜像
docker pull jenkins/jenkins
编写 docker-compose.yml
version: "3.1"
services:
jenkins:
image: jenkins/jenkins
container_name: jenkins
ports:
- 8080:8080
- 50000:50000
volumes:
- ./data/:/var/jenkins_home/
注:首次启动会因为数据卷 data 目录没有权限导致启动失败,设置 data 目录写权限即可。
我们就可以进行下载了,但下载时间可能有点长,可以配置一下国内的下载镜像地址
# 修改数据卷中的hudson.model.UpdateCenter.xml文件
<?xml version='1.1' encoding='UTF-8'?>
<sites>
<site>
<id>default</id>
<url>https://updates.jenkins.io/update-center.json</url>
</site>
</sites>
# 将下载地址替换为http://mirror.esuni.jp/jenkins/updates/update-center.json
<?xml version='1.1' encoding='UTF-8'?>
<sites>
<site>
<id>default</id>
<url>http://mirror.esuni.jp/jenkins/updates/update-center.json</url>
</site>
</sites>
# 清华大学的插件源也可以
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
在网址输入地址、账号与密码,就可以访问了。
后面下载插件可能会失败(很正常)我们可以进入 Jenkins 内部进行下载,后面创建用户
直接下一步,就可以进入了
在 Dashboard ——> Plugin Manager 里面下载我们安装失败的插件,就可以了
3、Jenkins 配置
由于 Jenkins 需要从 Git 拉取代码、需要本地构建、甚至需要直接发布自定义镜像到 Docker 仓库,所以 Jenkins 需要配置大量内容。
输入命令
mv/usr/local/jdk/ ./
mv/usr/local/maven/ ./
然后在 Dashboard ——> Global Tool Configuration 里面 add 一个 JDK 的地址
同样的 Maven 也是一样的。连接的方式有很多,可以采用用户名和密码(如何配置自行度娘)
不积跬步无以至千里,趁年轻,使劲拼,给未来的自己一个交代!向着明天更好的自己前进吧!