前端自动化部署超详细(Jenkins和Nginx)

3,532 阅读6分钟

Jenkins自动化部署

这里使用前提你需要购买一台服务器。我这里使用的是CentOS8,你购买服务器可以选择最新的 CentOS Stream看个人喜好

1. 安装Java环境

Jenkins本身是依赖Java的,所以需要先安装Java环境

使用java->1.8版本是目前使用最多的版本1.8就是对应的java8版本

tips:服务器安装最新的Jenkins那么java也要安装最新的

dnf search java

dnf install java-17-openjd

这里查看java-17-openjdk.x86_64 image.png

2. 安装Jenkins

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

  • wget是Linux中下载文件的一个工具,-O(output/输出含义)表示输出到某个文件夹并且命名为什么文件;
  • rpm:全称为The RPM Package Manage,是Linux下一个软件包管理器;
#下载文件到当前目录
wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat-stable/jenkins.repo

#导入GPG密钥以确保您的软件合法(为了校验jenkins合法性)
rpm --import https://pkg.jenkins.io/redhat/jenkins.io.key
#或者
rpm --import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key

编辑一下文件/etc/yum.repos.d/jenkins.repo

vi /etc/yum.repos.d/jenkins.repo

打开后按i

image.png

通过vim编辑复制命令

    [jenkins]
    name=Jenkins-stable
    baseurl=http://pkg.jenkins.io/redhat
    gpgcheck=1

输入后按键esc->shift键+:再输入wq(即保存并退出)

安装Jenkins

dnf install jenkins #--nogpgcheck(可以不加)
image.png

启动Jenkins的服务:

systemctl start jenkins
systemctl status jenkins
systemctl enable jenkins

Jenkins默认使用8080端口提供服务,所以需要加入到安全组中: image.png 这时候访问就会出现

image.png

因此继续输入命令查看密码

cat (查看服务器中某一个文件内容)

cat /var/lib/jenkins/secrets/initialAdminPassword

复制密码输入即可

image.png

默认自动安装就可以

3. Jenkins用户

安装成功过后需要你新建管理员用户你可自定义

上一步输入生成密码太繁琐所以这里新建一个管理员即可以后用来登录记住就行了

image.png

访问centos中的某些文件夹,默认Jenkins使用的用户是 jenkins,可能会没有访问权限,所以我们需 要修改一下它的用户:

方法1

修改文件的路径:/etc/sysconfig/jenkins

image.png

之后需要重启-下Jenkins:

方法2

#也可以将Jenkins添加到root组中
sudo usermod -a -G root jenkins

systemctl restart jenkins

方法3

#也可以给Jenkins目录权限 前面加sudo是管理员权限
chown -R jenkins /xxx/xxx

systemctl restart jenkins

4. 服务器需安装git

使用dnf install git在服务器安装,安装过后可以跳过

5. Jenkins配置

git安装后需要进行凭证添加来添加git账号

1.

image.png

2.

image.png

3.

image.png

4.

image.png

5.

image.png

构建环境:

注意:我们需要搭建Node的环境

  1. 配置Node的环境位置;
  2. 安装Node的插件;构建环境:
image.png

配置Node的环境位置

image.png

安装Node的插件

安装后需要进行重启即可

image.png

image.png

重启完成后进行配置点击:系统管理->全局工具配置

image.png

6. Jenkins任务

新建任务

image.png

进入后选择配置第一个自定义即可

image.png

点击确定

image.png

源码管理

image.png

构建触发器:

这里的触发器规则是这样的:

  1. 定时字符串从左往右分别是: 分 时 日 月 周
#每半小时构建一次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
image.png

构建执行的任务:

  1. 查看Node的版本等是否有问题
  2. 执行 npm insta11 安装项目的依赖;
  3. 移除原来mall_cms文件的所有内容;
  4. 将打包的dist文件夹内容移动到mall_cms文件夹;
pwd
node -v 
npm -v

npm install
npm run build

pwd

echo '构建成功'

ls

# 删除/root/mall_cms文件夹里所有的内容
rm -rf /root/xxx/*

cp -rf ./build/* /root/xxx/

“rm -rf /root/自定义文件目录/* ” :xxx->自定义文件目录

“cp -rf ./build/* /root/自定义文件目录/”:build打包后文件位置目录

image.png

因为配置的时间是半小时后执行,但是我们这里可以点击立即执行直接构建

image.png

这次可能会构建失败 有个问题,默认Jenkins去访问我们上面的root文件夹是没有权限的,

构建失败可以查看构建失败的控制台信息

image.png

image.png

image.png

访问上面第三条 Jenkins用户

或者这里解决

image.png 再次构建

image.png

nginx安装和配置

1. 安装nginx

dnf search nginx

我这里使用的是CentOS8,你购买服务器可以选择最新的 CentOS Stream看个人喜好 image.png

使用ssh进行连接服务器后进行操作安装:

dnf install nginx

执行后会提示y/N输入y即yes即可;

启动nginx:

systemctl start nginx //启动nginx
systemctl status nginx //查看状态是否启动成功
systemctl enable nginx //开机启动,为了让nginx来开机启动,

2. 配置nginx

nginx配置文件所在目录 /etc/nginx/nginx.conf

我们这里主要配置nginx的用户和默认访问目录:

配置用户

image.png 通过Linux命令创建文件夹和文件:

mkdir /root/mall_cms
cd /root/mall_cms
touch index.html

配置访问目录:

image.png

安装后Jenkins无法访问的话需要进行修改防火墙查看排查

1.确定jenkins是否启动了

systemctl status jenkins

image.png 这里发现jenkins的状态是正在运行的

2.检查防火墙

systemctl status firewalld

image.png 防火墙正运行,应该是没有开放jenkins的端口:

3.我们先用下面的代码来查看有没有开放我们设置的jenkins的端口:

firewall-cmd --list-ports

image.png

4.如果发现没有jenkins的端口,则用

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

image.png

开启后可以再查看一次是否开启使用上一个查看命令查看

image.png 这时候新增的8080已经存在

5.开启已经配置好的jenkins的端口,然后在重启防火墙,注意一定要重启防火墙!

systemctl reload firewalld

然后访问即可;如果阿里云的话记得要配置开放·端口号

image.png

报错处理Failed to download metadata for repo 'appstream': Cannot prepare internal mirrorlist: No URLs in mirrorlist

Centos8于2021年年底停止了服务,在使用yum源安装时候,会出现上面标题错误

1. 进入yum的repos目录

cd /etc/yum.repos.d/

2.修改所有的CentOS文件内容

sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-* 

sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*

3.切换yum源为阿里镜像

wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo 

yum clean all 

yum makecache

4. yum安装测试是否可以yum安装

yum install wget –y