感兴趣的话大家可以关注一下公众号 : 猿人刘先生 , 欢迎大家一起学习 , 一起进步 , 一起来交流吧!

1.前言

每当我们程序员开发在本地完成开发之后 , 都要部署到正式环境去使用 , 在一些传统的运维体系中 , 开发与运维都是割裂的 , 开发人员不允许操作正式服务器 , 服务器只能通过运维团队来操作 , 这样可以极大的提高服务器的安全性 , 不经过安全保护的开放服务器 , 对于黑客来说无疑就是打靶的靶场

所以 , 在现代化的大型软件项目中 , 对于开发的要求还是比较高的 , 虽然不会要求像运维老哥那样linux命令熟练到起飞 , 精通各种参数调优 , 安全策略 , 但是基础的运行环境运维的操作也是需要了解的 , 这样才能指导运维老哥进行业务环境部署 , 也就是开发运维一体化。虽然现在有很多工具能够帮助开发人员减少一些复杂的操作,但是开发人员还是需要更多的接触运维的工作

但是这种运维方式,同时也给项目开发过程中带来了很多困难

一方面,开发人员只能向运维人员描述具体的部署方式。但是由于开发人员无法接触到生产服务器,
所以文字描述的方式往往很难保证操作的准确性。经常会出现开发人员在开发环境运行得很好的迭代
包,升级到生产环境上之后无法保证升级的效果。对于现在流行的基于敏捷开发的大型项目来说,很多
需求需要以代码分支的方式进行并行开发,然后再合并部署,这其中更是非常容易出现错误,造成生产
环境不稳定。

另一方面,当项目在线上运行出现故障时,开发人员也很难第一时间接触到错误日志。如果线上出现
问题,开发人员往往需要找运维部门协同,才能获取到生产环境的服务日志。这会极大的延缓错误排查
的及时性

2.DevOps

以上那些问题的核心,其核心就是在传统运维体系下,开发和运维之间是有天然的壁垒和鸿沟的。而
DevOps则是试图打破这些壁垒鸿沟的一种方法论。DevOps是**Development(开发)Operation(运维)**两
个单词的组合,他是一种重视软件开发人员和运维技术人员之间沟通合作的文化、运动或者惯例。通过
自动化软件交互和架构变更的流程,使得构建、测试、发布软件时能够更加快捷、频繁和可靠。
总而言之,DevOps是一个标准,一种方法论或者说是一个目标,并不指一个特定的规则或者一系列
特殊的工具。那要如何落地DevOps呢?通常,这就需要CI\CD出马了。

3.CI&CD

CI\CD中的CI指的是持续集成Continuous Integeration,他是开发人员的自动化过程。成功的CI意味
着人员同的新代码变更会定期构建、测试并合并到共享存储库(比如Git或者SVN)。而CD指的是持续交付 Continuous Delivery和持续部署Continuous Deployment。成功的CD意味着运维人员可以从共享存储
库中持续获取到最新的产品副本,并确保最新的产品副本可以正确更新到服务器上

4.GitLab

gitLib的安装在之前我已经写过一篇文章 , 可以先看看这篇文章把Gitlib安装完毕 :

https://blog.csdn.net/qq_45001002/article/details/129399636?spm=1001.2014.3001.5501

5.Jenkins

Jenkins是一款开源 CI&CD 软件,用于自动化各种任务,包括构建、测试和部署软件。
Jenkins 支持各种运行方式,可通过系统包、Docker 或者通过一个独立的 Java 程序

5.1 下载

wget https://repo.huaweicloud.com/jenkins/redhat-stable/jenkins-2.346.3-1.1.noarch.rpm

5.2 安装

rpm -ivh jenkins-2.346.3-1.1.noarch.rpm

5.3 修改配置文件

vim /etc/init.d/jenkins 

在这里插入图片描述

查看jdk位置

which java

5.4 修改配置文件

修改端口是为了保证8080端口不冲突

vim /etc/sysconfig/jenkins

在这里插入图片描述

5.5 修改jenkins.service

vim /usr/lib/systemd/system/jenkins.service

在这里插入图片描述
两个配置文件端口保证一致 , 修改完之后重新载入配置

systemctl daemon-reload

服务自启动

systemctl enable jenkins

5.6 相关命令

/etc/init.d/jenkins start 启动  或者可以使用  systemctl start jenkins.service
/etc/init.d/jenkins stop 停止  或者可以使用  systemctl stop jenkins.service
/etc/init.d/jenkins restart 重启  或者可以使用  systemctl restart jenkins.service

5.7 初始化

在这里插入图片描述
密码在 :

/var/lib/jenkins/secrets/initialAdminPassword

这个里边 , 然后点击确定
然后会引导安装一些插件。这一步比较自由。你可以按照默认方式安装,也可以选择一些你认识的常
用插件安装。关键插件漏了没有关系,后续也可以再安装插件。
在这里插入图片描述
安装之后使用admin用户或者自己创建一个都行

5.8 核心插件配置

选择 Manage Jenkins-> Manage Plugins,进入插件管理页面。
在这里插入图片描述
在这里需要安装几个核心的插件。包括Git 、Git client、NodeJS Plugin、Maven integration
plugin。Jenkins重启的方式是直接在浏览器上访问restart接口。

http://192.168.154.148:8085/restart

5.9 核心组件配置

5.9.1 git

yum -y install git

5.9.2 mvn

首先在/usr/local新建一个maven文件夹

cd /usr/local
mkdir maven

在这里插入图片描述
下载

https://maven.apache.org/download.cgi

在这里插入图片描述

解压

tar zxvf apache-maven-3.9.0-bin.tar.gz

添加环境变量

vim /etc/profile
export MAVEN_HOME=/usr/local/maven/apache-maven-3.9.0
export PATH=$MAVEN_HOME/bin:$PATH

在这里插入图片描述
添加完之后刷新一下配置文件

source /etc/profile

执行mvn -v
在这里插入图片描述

5.93 Node.js

下载

wget https://nodejs.org/dist/v14.17.4/node-v14.17.4-linux-x64.tar.xz

解压

tar xf node-v14.17.4-linux-x64.tar.xz

配置环境变量

cd  node-v14.17.4-linux-x64
pwd

在这里插入图片描述
复制这个路径

vim /etc/profile

添加如下代码

export NODEJS_HOME=/home/software/node-v14.17.4-linux-x64
export PATH=$NODEJS_HOME/bin:$PATH

在这里插入图片描述
刷新权限

source /etc/profile

输入node -v 和 npm-v进行测试
在这里插入图片描述
到这里 GitLab+Jenkins的基础环境已经搭建完毕 , 下一篇文章将会说明如何基于GitLab+Jenkins快速实现CI\CD

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐