哈喽~ 大家好呀,这篇就来详细介绍 DevOps 以及需要安装什么软件。
个人主页:个人主页?????
系列专栏:【云原生系列】
与这篇相关的文章:
【云原生】3.5 RuoYi-Cloud部署实战(下) 【云原生】3.5 RuoYi-Cloud部署实战(下)_程序猿追的博客-CSDN博客 云原生讲解【扩展篇】 云原生讲解【扩展篇】_程序猿追的博客-CSDN博客 【云原生】4.1 DevOps基础 【云原生】4.1 DevOps基础与实战_程序猿追的博客-CSDN博客
目录
一、DevOps 诞生
二、DevOps 介绍
三、DevOps管理软件生命周期
四、GitLab 与 Maven 安装
1、GitLab 安装
2、Maven 安装
五、Jenkins介绍、安装及配置
1、Jenkins 介绍
2、Jenkins 安装
3、Jenkins 配置
一、DevOps 诞生
软件开发最开始是由两个团队组成:二、DevOps 介绍
开发团队从头开始设计和整体系统的构建。需要系统不停的迭代更新。运维团队将开发团队的Code进行测试后部署上线。希望系统稳定安全运行。
这看似两个目标不同的团队需要协同完成一个软件的开发。那么这里就出现了一个问题,假设我在开发一款软件,开发完之后,交给了运维团队,运维团队向开发团队反馈需要修复的BUG以及一些需要返工的任务。这是开发团队在一直等候,开发人员啥也做不了,这无疑推迟了整个软件开发的周期。为了解决这类问题,诞生出了 DevOps ,专门解决开发团队与运维团队之间的沟通问题与交互问题。
DevOps,字面意思是 Development & Operations 的缩写,翻译过来就是开发 & 运维(前面有一篇云原生扩展篇对此有些介绍)。三、DevOps管理软件生命周期 整体的软件开发流程包括:
虽然字面意思只涉及到了开发团队和运维团队,其实QA测试(扩:QA 主要有两方面的工作:1.做过程中的改进 2.做质量的保证工作。)团队也是参与其中的。
百度一下可以查看到 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来做。四、GitLab 与 Maven 安装 1、GitLab 安装 像我们的开发人员使用的是 Git ,这里安装 Git 就不一一列出了,可以自行百度上网安装,我们这里使用 Docker 安装 GitLab。
最终我们得出一个结论——DevOps 强调的是高效组织团队之间如何通过自动化的工具协作和沟通 来完成软件的生命周期管理,从而更快、更频繁地交付更稳定的软件。
文章图片
上图就是我们最简单的一个通过 Jenkins 来管理,那么下面我们就要基于这张图来实现功能了。
输入命令
查看 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/localtar -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文件
default
https://updates.jenkins.io/update-center.json # 将下载地址替换为http://mirror.esuni.jp/jenkins/updates/update-center.json
default
http://mirror.esuni.jp/jenkins/updates/update-center.json # 清华大学的插件源也可以
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 也是一样的。连接的方式有很多,可以采用用户名和密码(如何配置自行度娘)
不积跬步无以至千里,趁年轻,使劲拼,给未来的自己一个交代!向着明天更好的自己前进吧!
【云原生系列|【云原生】4.2 DevOps 精讲篇】
推荐阅读
- 云原生(K8s|菜鸟学Kubernetes(K8s)系列——(七)关于Kubernetes底层工作原理
- kubernetes|阿里P8架构师力荐K8s项目实战笔记 图文并茂带你深度解析Kubernetes
- Docker|Docker自定义镜像-Dockerfile
- MySQL|MySQL主从复制原理与实操
- 【k8s系列】scheduler
- docker|Docker --docker网络知识详解(原生网络、自定义网络、容器通信、跨主机容器网络)
- Docker技术|04@Docker Compose安装Compose模板文件的使用
- k8s|【工具篇】云原生架构。GitLab安装详解。
- 云原生|【云原生丨Docker系列9】Docker Compose使用详解