使用jenkins自动化部署

本次服务器环境

  • 服务器: centos7.6 (最低配置 2h4g)
  • jenkins: 2.387.1
  • java: openjdk 11.0.18
  • nginx: 1.22.1

搭建服务器环境

1. 安装java环境

这里使用dnf安装,如果linux版本是在centos8以下的是没有dnf的

可以使用 yum install -y dnf 命令安装dnf

DNF 是新一代的 rpm 软件包管理器。他首先出现在 Fedora 18 这个发行版中。而最近,它取代了 yum,正式成为 Fedora 22 的包管理器。

因为jenkins本身是依赖java的,所以我们需要先安装java环境

这里我安装了java11的环境

dnf search java-11

dnf install java-11-openjdk.x86_64

java --version

2. 安装jenkins

因为Jenkins本身是没有在dnf的软件仓库包中的,所以我们需要连接Jenkins仓库

这里附上官方文档
linux安装jenkins的官方文档

为了方便起见,我这里已经整理好了使用dnf安装的步骤

# wget是Linux中下载文件的一个工具,-O表示输出到某个文件夹并且命名为什么文件
sudo wget -O /etc/yum.repos.d/jenkins.repo \
    https://pkg.jenkins.io/redhat-stable/jenkins.repo
    
# rpm:全称为The RPM Package Manage,是Linux下一个软件包管理器
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key

sudo dnf upgrade

# 安装jenkins
sudo dnf install jenkins

sudo systemctl daemon-reload

这里再对jenkins的启动配置下就OK了~

  1. 首先是开机自启
sudo systemctl enable jenkins
  1. 然后启动jenkins
sudo systemctl start jenkins
  1. 最后查看jenkins当前状态
sudo systemctl status jenkins

查看状态后,如果输出了以下字样就代表成功了~

Loaded: loaded (/lib/systemd/system/jenkins.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2018-11-13 16:19:01 +03; 4min 57s ago

然后就可以通过公网ip加上端口号 (默认8080) 访问jenkins了

如果访问失败,可以查看防火墙是否打开8080端口

2.1 Jenkins初始化

进入jenkins网址之后就会提示要输入密码的界面,我这里没有截图,按照提示查看本地命令文件的密钥就好

快捷指令 cat /var/lib/jenkins/secrets/initialAdminPassword

这样就可以拿到密钥进入了


之后会有提示jenkins安装依赖的模式,选择新手安装就好啦,他会把默认的依赖插件都安装好的!

使用jenkins自动化部署

安装完成之后按照提示完成一些基本信息就可以来到了主页面

使用jenkins自动化部署

2.2 jenkins配置

  1. 首先到设置中需要安装node环境

使用jenkins自动化部署

然后搜索node并安装

使用jenkins自动化部署

之后返回设置,目前还是不能直接使用的,还需要配置一下node

使用jenkins自动化部署

然后往下滑,新增一个nodejs保存就好啦

使用jenkins自动化部署

  1. 安装完毕之后就可以 新建任务了

使用jenkins自动化部署

进入之后填完名字,选择第一个就好

使用jenkins自动化部署

然后源码管理选择 git

使用jenkins自动化部署

然后在添加凭据中加上gitee的账号密码就好,如果是github的话,好像需要添加一个密钥的

使用jenkins自动化部署

使用jenkins自动化部署

  • 这里构发器选择 定时构建 就好
    • 这里的触发器规则是这样的:定时字符串从左往右分别是:分 时 日 月 周
      #每半小时构建一次OR每半小时检查一次远程代码分支,有更新则构建
      H/30 * * * *
    
      #每两小时构建一次OR每两小时检查一次远程代码分支,有更新则构建
      H H/2 * * *
    
      #每天凌晨两点定时构建
      H 2 * * *
    
      #每月15号执行构建
      H H 15 * *
    
      #工作日,上午9点整执行
      H 9 * * 1-5
    
      #每周1,3,5,从8:30开始,截止19:30,每4小时30分构建一次
      H/30 8-20/4 * * 1,3,5
    
  • 当然也可以使用 GitHub hook trigger for GITScm polling
    • 这个可以在git每次推送的时候,就构建一次

然后构建环境选择我们之前配置好的nodejs

使用jenkins自动化部署

最后在 Build Steps 中选择shell脚本保存即可

使用jenkins自动化部署

pwd
node -v
npm -v

npm install 
npm run build

echo '构建成功'

ls
# ps: 以下路径是根据项目,本机环境修改的,并不是固定的
rm -rf /root/hyhBlog/* 

cp -rf ./public/* /root/hyhBlog/

注意哦,我这里的 hyhBlog 是我部署项目的文件夹,这样自己创建的哈,同时也是之后nginx的静态文件夹

2.3 配置jenkins权限

至此整个任务已经写完了,但是最后两个命令还是跑不起来的,因为jenkins没有权限

我们这里需要给jenkins用户root权限

  1. 修改配置文件 /etc/sysconfig/jenkins
    • 其中 JENKINS_USER="root"
  2. 修改配置文件 /usr/lib/systemd/system/jenkins.service
    • 其中 User=root Group=root

然后重启jenkins

systemctl daemon-reload

2.4 测试jenkins

现在就可以点击 立即构建 测试一下啦

使用jenkins自动化部署

然后点进构建任务中,这里是有控制台打印的

使用jenkins自动化部署

执行完成之后,就可以查看文件夹中打包有项目的文件啦

使用jenkins自动化部署

3. 安装nginx

命令一套流程~

dnf install nginx

systemctl start nginx
systemctl status nginx
systemctl enable nginx

之后在配置一下nginx

使用jenkins自动化部署

重启nginx就ok

systemctl restart nginx

至此自动化部署就大功告成啦!!!

原文链接:https://juejin.cn/post/7212603037667180605 作者:coderhyh

(0)
上一篇 2023年3月21日 下午4:05
下一篇 2023年3月21日 下午4:16

相关推荐

发表回复

登录后才能评论