个人文档
  • AI编程Cursor
  • GPT使用笔记
  • npm常用库合集
  • 同步用
  • 小Demo们
  • 工具网站教程集合
  • HTML、CSS 工具方法集合
    • HTML 全局属性
    • css常用功能
    • font-face 字体|子集相关
    • iframe父子页面传值
    • input输入优化
    • loading状态
    • nodejs使用谷歌邮箱发邮件
    • 为 Dom 自定义事件监听
    • 初始html的head标签配置
    • 拼音输入中文汉字的事件监听
    • 文字颜色效果
    • 文档片段范围 Range
    • 移动端开发-rem
    • 等宽字体推荐
    • 网站SEO优化注意点
    • 邮件html模板
  • JS 工具方法集合
    • Axios 简单使用
    • Axios 简单封装
    • Gitbook的安装和使用
    • Github 登录开发
    • HTML转为纯文本
    • JS 中强大的操作符
    • cookie 操作
    • js 动态加载js资源
    • js 常用功能语句
    • js取代trycatch的方法封装
    • js接口下载二进制
    • script 标签的异步属性
    • 判断当前是移动端还是pc端
    • 刷新token队列管理
    • 前端多线程 Web Worker
    • 加密-AES对称加密
    • 加密-node进行rsa加密解密
    • 地区省市区三级联动的地址数据 + 功能
    • 复制插件
    • 开发时环境变量
    • 得到随机图片
    • 数字格式整理集合
    • 数学计算插件
    • 时间格式整理
    • 获取ip地址
    • 获取url传参
    • 进制转换和位运算符
    • 页面隐藏|激活|关闭的监听
  • JS 知识点研究
    • Babel 历史和原理
    • Babel 配置和使用
    • Function 的 apply、call、bind
    • HTTP浏览器缓存粗解
    • Source map 文件还原为源码
    • TS常用技巧
    • js 的加载和模块化
    • js 的新数据类型 Symbol
    • js的代理对象 proxy 和 defineProperty
    • js的原型链 prototype
    • vite 打包体积优化
    • webpack 可视化打包文件大小插件
    • webpack 基础使用配置
    • webpack 版本5的报错
    • yeoman 开发脚手架的工具
    • 同步异步和微任务宏任务
    • 移动端调试---谷歌工具+eruda+vconsole
    • 转换-Blob URL
    • 转换-FileReader
    • 转换-Js文件类型和转换
    • 转换-前端开发的URL的编码和解码
    • 转换-字符串和Base 64的转换
  • Node 和 Npm 相关
    • Node 开发环境配置
    • express + jwt 校验
    • node 常用方法
    • node后台服务器-PM2
    • node基本使用
    • npm 中依赖的版本问题
    • npm 功能使用
    • npm指令说明和其他对比
    • nvm版本管理+自动切换node版本
  • React 学习
    • React Hook
    • React 项目基础开发
    • React.memo 和 React.PureComponent
    • React懒加载进阶
    • useContext Hook
    • useEffect Hook
    • useMemo 和 useCallback - Hook
    • useRef Hook
    • useState Hook
    • 同步修改变量功能封装 useVal for react
    • 轻便的传值组件
  • Rust 语言相关
    • Rust 基本
    • Rust 基础学习
    • Rust 调用 Object-C 的API
    • Tauri 基本使用
    • Tauri 是什么
  • VUE 学习
    • Vue3 使用
    • Vue3使用hook
    • Vue开发小技术点
    • vue路由切换时的动画效果
    • 花式引入组件和资源-打包时拆包减少js体积
  • Web3相关
    • Web3.0开发上-准备和概念理解
    • Web3.0开发下-功能代码示例
    • 以太坊区块链和Web3.0
    • 开发智能合约
  • python
    • pyenv版本管理工具
    • python初始化
    • python基本概念
    • venv虚拟环境
  • 个人其他
    • Steam Deck的基本设置和插件
  • 其他编程相关
    • Git教程和常用命令
    • Java开发-JDK和Maven的安装和卸载
    • Jenkins安装和基本使用
    • Linux系统指令
    • Mac 使用2K屏幕开启缩放
    • Mac 使用VS code打开项目
    • Mac 安装 Homebrew
    • Mac 的终端 shell 与 zsh
    • Mac 软件和插件
    • MacBook使用建议
    • Mac升降级到指定版本的系统
    • Mac安装Zsh
    • Mac安装软件各种提示
    • Mac系统脚本语言 AppleScript 的使用
    • Mac终端代理工具
    • Markdown(md)文档开发-Typora
    • Mysql 的安装和使用
    • Nginx 安装和基础使用
    • Nginx 稍微高深的配置
    • Slate - Api 的文档开发工具
    • Sublime配置
    • Ubuntu的 apt-get 使用
    • VScode配置
    • Windows 软件和插件
    • curl 工具使用
    • github 网站访问优化
    • host 文件
    • inquirer 终端中和用户交互
    • uTools的插件开发教程
    • vim 文本编辑功能
    • 使用 Github Pages 免费部署网站
    • 压缩指令 zip 和 unzip
    • 油猴的安装和开发(Tampermonkey)
    • 阿里云简略使用
  • 微信开发
    • 微信小程序开发
    • 微信开发必读
    • 微信开发提前购买域名
    • 微信手机打开的页面中授权登录
    • 微信扫码登录
    • 微信服务号登录+推送服务提醒
    • 自定义分享卡片-node.js实现
  • 数据结构与算法
    • KMP算法
    • Wildcard字符串分析算法
    • 二叉树
    • 字典树
    • 时间复杂度浅析
    • 算法神器——动态规划
Powered by GitBook
On this page
  • Jenkins安装和基本使用
  • 安装
  • 基本使用

Was this helpful?

  1. 其他编程相关

Jenkins安装和基本使用

title: Jenkins安装和基本使用 id: ff4ce255fa7a3a12b2bd5a067fdab2f6 tags: [] date: 2000/01/01 00:00:00 updated: 2023/03/04 19:29:12 isPublic: true --#|[分隔]|#--

Jenkins安装和基本使用

项目使用Jenkins部署,已经是工作中的常态了,这里来给服务器安装一个Jenkins。

安装Jenkins之前,需要给服务器先安装JDK。

安装

服务器安装linux,可以直接参考 官方教程 中对应的这部分内容,下面是实际安装过程。

官方安装说明

安装之前,需要先确保java的安装正确

jenkins的安装程序只会去/bin:/usr/bin:/sbin:/usr/sbin这几个路径,去寻找java指令,如果没有,那么安装过程会报错,所以安装之前需要先确保一下。

# 输入,查询java路径在正确的位置
type -a java

# 输出
java is /usr/bin/java
java is /usr/lib/jdk1.8.0_202/bin/java
java is /usr/lib/jdk1.8.0_202/jre/bin/java

可以看到java指令存放的位置,如果上面要的几个位置中没有,那么就需要做一个软链接,来完成要求:

# 做一个软链接,注意 /jdk1.8.0_202/bin/java 需要根据自己的java位置来修改,其实就是上面打印出来的java的位置
ln -s /jdk1.8.0_202/bin/java /usr/bin/java

安装

对于【Debian/Ubuntu】的linux系统,官方安装主要就下面四行命令,依次复制到服务器进行安装即可,至于其他版本的linux。。。我暂时还没有遇到。

wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add -

sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'

sudo apt-get update

sudo apt-get install jenkins

官方还有一些说明,大意是:

  • 使用 service jenkins 【操作指令】 来操作 jenkins 的启动关闭,具体操作指令,通过查看 /etc/init.d/jenkins 文件,一般包括以下几个命令(start|stop|restart)。

  • /var/log/jenkins/jenkins.log 为 jenkin 的日志

  • /etc/default/jenkins 为配置文件,可以设置端口号,内部 HTTP_PORT=8080 这一行就是端口号配置

原文:

  • 将Jenkins设置为启动时启动的守护进程。查看/etc/init.d/jenkins获取更多细节

  • 创建一个'jenkins'用户来运行此服务

  • 直接将控制台日志输出到文件/var/log/jenkins/jenkins.log。如果您正在解决Jenkins问题,请检查此文件

  • /etc/default/jenkins为启动填充配置参数,例如JENKINS_HOME

  • 将Jenkins设置为在端口8080上进行监听。使用浏览器访问此端口以开始配置 如果你的/etc/init.d/jenkins文件无法启动Jenkins,编辑/etc/default/jenkins, 修改 ----HTTP_PORT=8080----为----HTTP_PORT=8081---- 在这里,“8081”也可被换为其他可用端口。

执行 service jenkins start 时,可能会报错:

service jenkins start

Failed to start jenkins.service: Unit jenkins.service not found.

可通过指令 systemctl list-unit-files --type=service 查找全局服务中,是否有 Jenkins,如果有,那说明安装成功,但系统指令未加载,那就执行以下指令,重载一下系统指令:

systemctl daemon-reload

再次执行 service jenkins start ,可能还会报以下错误:

service jenkins start

Job for jenkins.service failed because the control process exited with error code.
See "systemctl status jenkins.service" and "journalctl -xe" for details.

启动完成和基本配置

执行完上面的四剧指令后,jenkins安装完成。

打开浏览器,输入我的【服务器ip + 端口号】,打开了jenkins界面,但还是一个大意【请稍等,jenkins正在初始化】的提示。

配置代理(可选)

如果打算直接【服务器ip + 端口号】打开,就不用配置服务器代理了。

后面就需要用浏览器访问 jenkins了,这里建议先配置域名解析,解析一个域名到当前服务器IP很简单,不再说明,但当打开域名时,凡事http访问的域名,进入的都是80端口,可我们服务器中,启动着jenkins服务的端口不同,是不能访问到的。

这时就需要我们在服务器配置一下代理,这里我使用的web服务器的是nginx。

我使用nginx监听了所有请求到当前ip的80端口的请求,所以上面配置了域名解析,当访问时,也会进入到我的nginx中,这时我需要用nginx配置一下反向代理。

nginx的其他配置不贴了,只贴一下代理jenkins项目的配置项,把下面代码贴到nginx配置文件的对应位置,然后重启nginx即可:

# jenkins项目 反向代理
server {
  listen 80;
  # 后面是jenkins项目的域名,比如域名是 jenkins.temp.com,那下一行这么写
  server_name jenkins.temp.com;
  access_log  /var/log/nginx/access.jenkins.log; # 输出一下该网站的访问日志,非必须
  location / {
    # 反向代理,我服务器中jenkins服务的端口是8092,就写成下面那样
    proxy_pass http://localhost:8092/;
    proxy_redirect  off;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For
    $proxy_add_x_forwarded_for;
  }
}

解析和配置完nginx后,重启nginx,在浏览器输入我们配置的域名,就能看到一个jenkin正在初始化的等待页面。

进入页面

页面初始化完成后,会出现页面,提示你从服务器某个文件中复制 Jenkins 密码,写到页面下面的输入空中,这里直接去服务器取得密码输入继续就行。

再后面,会要求选择安装推荐的插件,还是自定义插件,选择推荐的插件,点击后显示了插件安装进度界面,这里等待安装完成后,会要求创建第一个管理员用户。

创建完第一个管理员用户,会再要求定义当前Jenkins项目的域名,这个域名最好就写成这个jenkins项目即将使用的域名,以后部署项目各种连接服务器,都会进行校验。

写完确认后,就可以进入自己的 Jenkins 页面了。

基本使用

安装插件

  • git相关插件,具体暂不清楚。。。

  • Publish over SSH:登录远程ssh插件,用来让jenkins登录其他服务器,如果jenkins中的任务,只是在安装jenkins的服务器执行一些shell,那就用不到了

配置权限

jenkins是可以直接在当前服务器执行shell,来执行任务的。

但正常情况,jenkins只能控制当前自己的文件夹(工作空间),没有权限进入其他文件夹,这时如果需要进入其他的目标文件夹,只有两种方法:

  • 修改目标文件夹权限,允许jenkins访问。

  • 修改jenkins的用户权限,为其分配新的权限更高的用户组,使其能有权访问。

正常来说,应该使用方案一,但实际我们会犯懒,直接提升jenkins权限。。。下面就提升jenkins为root:

# jenkins用户加入到root组
gpasswd -a jenkins root

修改jenkins执行时使用的用户组,要求其使用root,我们需要修改jenkins自己的配置文件。

可能由于安装方式不一样,配置文件也不一样,要么是/etc/default/jenkins,要么是/etc/sysconfig/jenkins,我们可以试一下,哪个文件存在有配置,就是哪个。 我这里的是/etc/default/jenkins文件:

# 编辑文件
vim /etc/default/jenkins

# 把以下两行,修改成以下
JENKINS_USER="root"
JENKINS_GROUP="root"

修改完成后,重启jenkins服务,就有权限访问其他文件夹了。

service jenkins restart

npm、java等工具找不到

当我们创建了构建流程,点击构建后,如果使用npm、gitbook等我们自己安装在服务器的工具,可能仍然会报错,提示类似:

/usr/bin/env: node: No such file or directory

但我们打开服务器,却能发现,node指令完全没问题。。。

原因应该是,jenkins使用这些指令时,只会从/usr/bin/目录下查找有没有,不会全局查找。

这就需要我们自己定义一下软连接,和上面处理JDK的方式一样:

  • 使用type -p {你的指令}查看指令的位置。

  • 使用ln -s {上一行输出的位置} /usr/bin/{你的指令},来创建软连接。

这样,jenkins就可以使用用户安装的指令了。

创建一个简单的构建流程

在 jenkins 首页,点击「新建任务」,进入如下页面。

任务名称可以直接使用汉字,为这个构建起一个名字,然后选择下面列表中的第一项「构建一个自由风格的软件项目」,当然如果有其他需求可以选择其他,但我一般就使用这个就足够了。

之后进入此项目的配置页面,如下图所示:

上图中:

  • A 处可以写一些该项目的描述

  • B 处选择你是否需要使用Git拉取远程仓库的项目,如果不需要就直接无。

但如果需要使用 git,选择Git后,会展开一个新模块,需要你填写远程仓库地址(支持https和ssh两种地址),后面再选择对应的的凭证,这个凭证可以点击「添加」按钮来新增。

且当写完仓库地址、选择凭证后,jenkins 会自动测试一下,检测这个远程仓库使用对个凭证是否可以正常登录,如果不能会有提示,如下图所示,且可以指定拉取的分支。

项目第一次部署时,Jenkins 会创建一个属于这个项目的工作空间,默认位置为:

/var/lib/jenkins/workspace/【项目名称】

比如我的这个项目,位置就是:/var/lib/jenkins/workspace/一个测试项目

这里选择使用Git,项目拉取后,就是存放在服务器的这个目录下。

进行完是否使用Git后,我们可以进行后续步骤,后面有一个关键的配置,就是「构建」中的「增加构建步骤」下的「执行 shell」:

之后会出现一个文本框,你可以在这里写一些shell指令,可以使用所有指令,比如复制文件、去其他目录、拉取git、使用node等等:

进行完之后,就可以保存,然后去执行这个构建项目了。

PreviousJava开发-JDK和Maven的安装和卸载NextLinux系统指令

Last updated 3 months ago

Was this helpful?

Snipaste_2021-03-24_12-19-07.png
Snipaste_2021-03-24_13-56-28.png
Snipaste_2021-03-24_13-54-39.png
Snipaste_2021-03-24_13-56-00.png
Snipaste_2021-03-24_14-06-40.png