服务搭建篇(九) 使用GitLab+Jenkins搭建CI\CD执行环境 (上) 基础环境搭建

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

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 

8648e59b903139da372e82795fca5d6d_ebf027e9978b44349dd81f00144b24cd.png

查看jdk位置

which java

5.4 修改配置文件

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


vim /etc/sysconfig/jenkins

dafab2b885c512987871da2f1997854d_cf61e714855549028915670c6d7b9462.png


5.5 修改jenkins.service

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

e165a09b7b71ca650ffd0d09dfafd1dc_0757506a68d7482ca7022e3393c2bb93.png

两个配置文件端口保证一致 , 修改完之后重新载入配置

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 初始化

5604602a7b7e955e04e562314c9e0135_8b5fcc10c2034bb9abcfa127fd326e62.png

密码在 :

/var/lib/jenkins/secrets/initialAdminPassword

这个里边 , 然后点击确定

然后会引导安装一些插件。这一步比较自由。你可以按照默认方式安装,也可以选择一些你认识的常

用插件安装。关键插件漏了没有关系,后续也可以再安装插件。

df6b3011cc822477d281dd9b1e7a66bd_706194f119654f048cea2b6e7fbf1648.png

安装之后使用admin用户或者自己创建一个都行


5.8 核心插件配置

选择 Manage Jenkins-> Manage Plugins,进入插件管理页面。

95e544999f1095c8922d223fa3bd6d71_20854e63eb024e7db3c1d6a8843308e8.png

在这里需要安装几个核心的插件。包括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

999f9d1a918656935c9f3ad99c6c5b62_21d44803d4ad496ab0048770bd644064.png

下载


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

f286b0fef593a0094befad6ae8c761cc_4d7f2343bb6a4046814b56eb16dad747.png


解压

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


c44fe6ffa907534c259d933736dd92dd_1c19092d518a4783b21cd2d19b465ed0.png

添加完之后刷新一下配置文件

source /etc/profile

执行mvn -v

03ec7364c7768bca13f7753cbc08c63d_a83db320a3fc4755b1f2a020866e567b.png


5.93 Node.js

下载


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

解压

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

配置环境变量


cd  node-v14.17.4-linux-x64
pwd

8aae049b47b67496ffadcb3ea37f5c3f_7630d0ba1e364dc8a7e1c84b735d0fc8.png

复制这个路径

vim /etc/profile

添加如下代码

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

3973a741278e44b08fd7cf5fee513574_70a8e7b798da47abb00da41b28488959.png

刷新权限

source /etc/profile

输入node -v 和 npm-v进行测试

d27a7741c3b27c275ab97eca19d05d62_798fa2b3b9464032b2003009113b798c.png

到这里 GitLab+Jenkins的基础环境已经搭建完毕 , 下一篇文章将会说明如何基于GitLab+Jenkins快速实现CI\CD

相关文章
|
18天前
无缝构建与部署:GitLab CI/CD首秀的实战攻略
无缝构建与部署:GitLab CI/CD首秀的实战攻略
38 0
无缝构建与部署:GitLab CI/CD首秀的实战攻略
|
18天前
|
存储 持续交付 API
GitLab CI/CD简介:构建持续集成与持续交付的全方位指南
GitLab CI/CD简介:构建持续集成与持续交付的全方位指南
31 0
GitLab CI/CD简介:构建持续集成与持续交付的全方位指南
|
2月前
|
JavaScript jenkins 持续交付
Jenkins自动构建 CI/CD流水线学习笔记(从入门到入土,理论+示例)
Jenkins自动构建 CI/CD流水线学习笔记(从入门到入土,理论+示例)
61 0
|
2月前
|
Devops 开发工具 数据安全/隐私保护
Docker Swarm总结+CI/CD Devops、gitlab、sonarqube以及harbor的安装集成配置(3/5)
Docker Swarm总结+CI/CD Devops、gitlab、sonarqube以及harbor的安装集成配置(3/5)
62 0
|
2月前
|
NoSQL 关系型数据库 MySQL
Docker安装详细步骤及相关环境安装配置(mysql、jdk、redis、自己的私有仓库Gitlab 、C和C++环境以及Nginx服务代理)
Docker安装详细步骤及相关环境安装配置(mysql、jdk、redis、自己的私有仓库Gitlab 、C和C++环境以及Nginx服务代理)
233 0
|
4月前
|
Shell 开发工具 git
GitLab CI/CD
GitLab CI/CD
57 0
|
4月前
|
小程序 前端开发 开发工具
Node+GitLab实现小程序CI系统
Node+GitLab实现小程序CI系统
|
4月前
|
存储 jenkins 持续交付
百度搜索:蓝易云【Docker+Rancher+Harbor+GitLab+Jenkins搭建CI/CD环境】
请注意,上述步骤仅为一个示例,实际搭建过程可能因环境和需求的不同而有所变化。因此,在实际操作中,请参考相应工具的官方文档和指南,以确保正确地配置和集成这些工具。
62 3
|
5月前
|
jenkins Java 持续交付
【项目集成工具】Jenkins
【项目集成工具】Jenkins