服务搭建篇(九) 使用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

相关文章
|
2月前
|
缓存 监控 数据可视化
利用GitLab CI/CD自动化您的软件开发流程
【10月更文挑战第10天】GitLab CI/CD 是 GitLab 内置的持续集成和持续部署工具,通过编写 .gitlab-ci.yml 文件,可以自动化构建、测试和部署应用程序的过程。本文介绍 GitLab CI/CD 的核心优势、实施步骤及在现代开发中的应用,帮助您提高开发效率和软件质量。
|
2月前
|
jenkins Shell 持续交付
Jenkins持续集成GitLab项目 GitLab提交分支后触发Jenkis任务 持续集成 CI/CD 超级详细 超多图(二)
Jenkins持续集成GitLab项目 GitLab提交分支后触发Jenkis任务 持续集成 CI/CD 超级详细 超多图(二)
70 0
|
2月前
|
JavaScript 测试技术 持续交付
使用 GitLab CI/CD 管道自动化部署 Web 应用
【10月更文挑战第2天】使用 GitLab CI/CD 管道自动化部署 Web 应用
55 0
|
2月前
|
jenkins Shell 持续交付
Jenkins持续集成GitLab项目 GitLab提交分支后触发Jenkis任务 持续集成 CI/CD 超级详细 超多图(一)
Jenkins持续集成GitLab项目 GitLab提交分支后触发Jenkis任务 持续集成 CI/CD 超级详细 超多图(一)
163 0
|
4月前
|
安全 jenkins 持续交付
jenkins学习笔记之八:jenkins认证集成gitlab
jenkins学习笔记之八:jenkins认证集成gitlab
|
7月前
|
Linux 应用服务中间件 网络安全
linux安装Gitlab
linux安装Gitlab
174 0
|
4月前
|
Shell Docker 容器
GitlabCI学习笔记之一:安装Gitlab和GitLabRunner
GitlabCI学习笔记之一:安装Gitlab和GitLabRunner
|
3月前
|
Docker 容器
Docker安装Gitlab和Gitlab-Runner并实现项目CICD
Docker安装Gitlab和Gitlab-Runner并实现项目CICD
|
5月前
|
Devops 持续交付 开发工具
入职必会-开发环境搭建54-GitLab下载和安装
GitLab 是一个基于 web 的 Git 仓库管理工具,提供了代码托管、版本控制、协作开发、持续集成等功能,是一个综合的 DevOps 平台。用户可以使用 GitLab 托管他们的代码仓库,并利用其丰富的功能来管理和协作开发项目。 以下是 GitLab 的一些主要特点和功能。
入职必会-开发环境搭建54-GitLab下载和安装
|
4月前
|
Ubuntu 安全 网络安全
在Ubuntu 16.04上安装和配置GitLab的方法
在Ubuntu 16.04上安装和配置GitLab的方法
74 0