当前位置: 首页 > news >正文

jenkins最佳实践(一):jenkins安装与部署

各位小伙伴们大家好呀,我是小金,下面我将记录学习jenkins的系列文章与心得,一方面用于博主的自我记录,一方面如果能帮助到正在浏览这篇文章的小伙伴,那更好不过了,本篇文章主要讲述jenkins的安装以及安装jenkins所必须的环境搭建。

一 、 jenkins简介

Jenkins 是一个基于 Java 的开源持续集成和持续部署工具,旨在自动化软件开发流程中的重复工作,如代码编译、测试和部署,从而提高开发效率。

1.1 主要优势:
  • 自动化操作:开发者只需将代码提交到版本控制系统(如 Git),Jenkins 会自动处理后续的编译、测试和部署。
  • 减少错误:通过自动化,降低了手动操作带来的错误风险,确保一致性。
  • 节省时间:避免了手动重复操作,让开发者能专注于编写代码。
  • 丰富的插件生态:Jenkins 提供多种插件,支持不同需求和扩展功能。
1.2 工作流程:
  • 开发人员将代码提交到版本控制系统(如Git)。
  • enkins 通过 Git 插件获取最新代码,并执行相应的构建任务。
  • 构建完成,可以将构建的包推送到业务服务器或 docker 镜像服务器。
  • 任务构建成功或失败,Jenkins 可以自动发送通知,以便及时处理问题。

二 、 环境安装

考虑到环境隔离和便于迁移博主最初是将Jenkins安装在docker容器上的,可是后来遇到一系列很麻烦的问题,在处理容器与宿主机之间频繁出现问题,后来博主就将此环境之间安装在宿主机上了,这大大的简化了文件的传输与转移,以及流水线脚本的编写过程。因此我们以下演示的均是直接在宿主机上操作的。

2.1 安装JDK

这里直接使用yum命令安装

sudo yum install java-11-openjdk

如果系统已经安装过了jdk,但是又想更换默认的jdk版本,可使用如下命令,进行默认jdk版本的切换

sudo alternatives --config java

选择对应的序号即可。
在这里插入图片描述

2.2 安装Maven

这里使用安装包的方式安装,博主使用的版本是 apache-maven-3.9.8-bin.tar 有需要的可以下载,也可以下载其他版本的maven跳转下载 提取码:0913

#在指定的目录下解压 安装包
tar zxf apache-maven-3.9.8-bin.tar.gz
#重命名一下文件目录
mv apache-maven-3.9.8 maven3
#配置环境变量:
sudo vi /etc/profile
#在文件的末尾添加以下两行,设置`M2_HOME``PATH`变量:
export M2_HOME=maven安装目录
export PATH=$PATH:$M2_HOME/bin
#保存后退出  使得配置生效
source /etc/profile
#验证
mvn -version

配置环境变量
在这里插入图片描述

验证版本
在这里插入图片描述

对于settings文件同学们可以配置为阿里云的镜像,此处省略,后面的文章会有对这方面的改造。

2.3 安装git

直接运行命令即可

#安装
yum install git
#查看版本
git --version
2.4 安装node

如果是只部署后端服务,此步骤可以省略,node环境是为前端服务部署准备的。
博主使用的系统是centos7,当前系统最高支持node版本到 16x,过高的版本会报错,这里我们使用 nvm 来安装 node,这样还可以在想要的时候,切换 node 版本。我们这里使用v16.20.2版本。
首先,需要下载并安装 NVM。你可以使用 curlwget 来完成这一步。

2.4.1 安装 NVM

使用 wget

wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.4/install.sh | bash

加载 NVM

安装完成后,你需要重新加载 shell 配置文件来使 NVM 生效。通常情况下,你可以运行以下命令:

source ~/.bashrc

验证 NVM 安装

通过运行以下命令来验证 NVM 是否成功安装:

nvm --version

在这里插入图片描述

配置环境变量

vim ~/.bashrc

~/.bashrc 文件中添加如下内容:

# nodejs下载更换淘宝镜像
export NVM_NODEJS_ORG_MIRROR=https://npm.taobao.org/mirrors/node

在这里插入图片描述

然后刷新环境变量,并查看nvm版本:

# 刷新环境变量
source ~/.bashrc![image.png](https://p0-xtjj-private.juejin.cn/tos-cn-i-73owjymdk6/d892252f2db74fd980ac56602c6e2585~tplv-73owjymdk6-jj-mark:0:0:0:0:q75.awebp?policy=eyJ2bSI6MywidWlkIjoiMzU3MDgzNzQ5NDk4ODUyNiJ9&rk3s=f64ab15b&x-orig-authkey=f32326d3454f2ac7e96d3d06cdbb035152127018&x-orig-expires=1724643905&x-orig-sign=828bA%2FiHfilam5prJsus4fBJ%2FWo%3D)
# 检查nvm版本,检查是否安装成功
nvm -v
2.4.2 安装 node

nvm使用

# 查看所有能安装的nodejs版本
nvm ls-remote # 安装指定的版本
nvm install 21.6.0# 使用指定版本,临时有效
nvm use 21.6.0# 设置默认版本
nvm use 21.6.0
nvm alias default 21.6.0

上面在查看和安装的时候可能会遇到一个问题,就是 nvm ls-remote 执行结果可能只显示"iojs-"开头的版本,那么尝试下面的方式:

# 由于网络问题nvm ls-remote执行结果可能只显示"iojs-"开头的版本,如果是这样,尝试下面的指令试试
NVM_NODEJS_ORG_MIRROR=http://nodejs.org/dist nvm ls-remote
NVM_NODEJS_ORG_MIRROR=http://nodejs.org/dist nvm install 16.20.2

node默认安装在nvm下的versions文件夹中
查看 NVM 安装目录
NVM 通常安装在用户的主目录中,具体路径是 ~/.nvm。你可以通过以下命令查看:

echo $NVM_DIR

当前应该安装在 /root/.nvm/versions/node/v16.20.2 目录下,后边会用到,先记下安装位置。

2.5 安装jenkins
2.5.1 安装并启动Jenkins
  1. 添加Jenkins的yum仓库:

    创建一个新的repo文件 /etc/yum.repos.d/jenkins.repo 并添加以下内容:

[jenkins]
name=Jenkins
baseurl=http://pkg.jenkins-ci.org/redhat-stable
gpgcheck=1
gpgkey=https://jenkins-ci.org/redhat/jenkins-ci.org.key
enabled=1
  1. 导入Jenkins的公钥:
sudo rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key
  1. 安装Jenkins:
sudo yum install jenkins
  1. 启动Jenkins服务:
sudo systemctl start jenkins
  1. 设置Jenkins开机自启:
sudo systemctl enable jenkins
  1. 访问Jenkins:

    安装完成后,你可以在浏览器中通过 http://your_server_ip:8080 访问Jenkins。第一次访问时,你会被要求输入管理员密码,这个密码位于安装日志文件中,通常在 /var/lib/jenkins/secrets/initialAdminPassword

请确保你的防火墙设置允许8080端口的流量通过,否则你可能无法从外部访问Jenkins。如果你使用的是firewalld,可以使用以下命令:

sudo firewall-cmd --permanent --zone=public --add-port=8080/tcp
sudo firewall-cmd --reload

安装成功,访问页面如下。下面的操作不再赘述,创建新用户,完成推荐插件安装即可。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • SAP 界面小技巧-快速查找单据及路径
  • 机械学习—零基础学习日志(如何理解概率论5)
  • 二分查找理解
  • 喜讯!30篇论文完成知网(CNKI)检索,历时不到2个月
  • Baumer工业相机堡盟工业相机如何通过NEOAPI SDK使用HDR功能(Python)
  • Win/Linux/Mac 安装Python 3.6
  • Leetcode 476. Number Complement
  • OCR文字识别接口如何用PHP进行调用
  • 【计算机三级-数据库技术】数据库及数据库对象
  • 运营商三要素-手机三要素-运营商三要素验证-运营商实名认证-手机三要素实名校验核验接口API
  • 使用IO流复制文件夹
  • 关于武汉芯景科技有限公司的RS232通信接口芯片XJ3243EEUI开发指南(兼容MAX3243EEUI)
  • 不用再找了,国内无限制使用GPT 4o的方法【2024年9月 亲测好用】
  • AT372-6P单频高精度定位模块功能解读
  • 用Python探索排序算法:冒泡排序的实现与优化
  • 自己简单写的 事件订阅机制
  • 〔开发系列〕一次关于小程序开发的深度总结
  • Apache Pulsar 2.1 重磅发布
  • Java比较器对数组,集合排序
  • k8s 面向应用开发者的基础命令
  • Spark in action on Kubernetes - Playground搭建与架构浅析
  • Stream流与Lambda表达式(三) 静态工厂类Collectors
  • supervisor 永不挂掉的进程 安装以及使用
  • webpack+react项目初体验——记录我的webpack环境配置
  • 阿里云容器服务区块链解决方案全新升级 支持Hyperledger Fabric v1.1
  • 发布国内首个无服务器容器服务,运维效率从未如此高效
  • 前端代码风格自动化系列(二)之Commitlint
  • 前端技术周刊 2018-12-10:前端自动化测试
  • 全栈开发——Linux
  • 入门级的git使用指北
  • 三栏布局总结
  • 网络应用优化——时延与带宽
  • 我建了一个叫Hello World的项目
  • d²y/dx²; 偏导数问题 请问f1 f2是什么意思
  • Android开发者必备:推荐一款助力开发的开源APP
  • Nginx惊现漏洞 百万网站面临“拖库”风险
  • ​马来语翻译中文去哪比较好?
  • # Python csv、xlsx、json、二进制(MP3) 文件读写基本使用
  • #ifdef 的技巧用法
  • #我与Java虚拟机的故事#连载07:我放弃了对JVM的进一步学习
  • $HTTP_POST_VARS['']和$_POST['']的区别
  • (AtCoder Beginner Contest 340) -- F - S = 1 -- 题解
  • (八)五种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (创新)基于VMD-CNN-BiLSTM的电力负荷预测—代码+数据
  • (附源码)ssm教材管理系统 毕业设计 011229
  • (转)http-server应用
  • (转)项目管理杂谈-我所期望的新人
  • .NET CORE 3.1 集成JWT鉴权和授权2
  • .net core 使用js,.net core 使用javascript,在.net core项目中怎么使用javascript
  • .net wcf memory gates checking failed
  • .net的socket示例
  • @GetMapping和@RequestMapping的区别
  • @GlobalLock注解作用与原理解析
  • @JsonFormat 和 @DateTimeFormat 的区别
  • [ vulhub漏洞复现篇 ] ECShop 2.x / 3.x SQL注入/远程执行代码漏洞 xianzhi-2017-02-82239600