jenkins自动化部署
jenkins官网安装步骤
1. 安装环境
安装Java运行环境。Jenkins需要Java运行环境才能正常工作。您可以从Oracle官网下载Java运行环境并安装,或者使用您操作系统自带的Java运行环境。
sudo wget -O /etc/yum.repos.d/jenkins.repo \
https://pkg.jenkins.io/redhat-stable/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io-2023.key
sudo dnf upgrade
sudo dnf install git
sudo dnf install nginx
sudo dnf install java-11-openjdk
sudo dnf install jenkins
sudo systemctl daemon-reload
2. 运行Jenkins
打开终端并以root用户身份登录
# 启动Jenkins服务
$ systemctl start jenkins
# 设置Jenkins服务开机自启
$ systemctl enable jenkins
# 验证Jenkins服务是否已经启动
$ systemctl status jenkins
Jenkins默认使用8080端口提供服务,所以需要加入到安全组中
给Jenkins目录权限
$ chown -R jenkins /etc/sysconfig/jenkins
$ sudo usermod -a -G root jenkins
$ systemctl restart jenkins
访问Jenkins Web界面。启动Jenkins服务后,您可以在浏览器中访问Jenkins Web界面,默认端口为8080。
获取输入管理员密码:
$ cat /var/lib/jenkins/secrets/initialAdminPassword
3. Jenkins Node插件
注意:我们需要搭建Node的环境
第一步:安装Node的插件
第二步:配置Node的环境
4. 任务
创建一个新的任务
设置仓库的地址,凭证以及需要克隆的分支
构建触发器:
定时字符串从左往右分别是:分 时 日 月 周
#每半小时构建一次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
添加 Node 环境支持
执行任务之前可以创建目录以及添加权限
$ cd /root
$ mkdir test
$ sudo chown -R jenkins:jenkins /root/test
$ sudo chmod -R 777 /root/tets
构建执行的任务:
- 查看Node的版本等是否有问题;
- 执行
npm install
安装项目的依赖; - 移除原来mall_cms文件的所有内容;
- 将打包的dist文件夹内容移动到mall_cms文件夹;
npm install
npm run build
pwd
rm -rf /root/test/*
cp -rf ./dist/* /root/test/
构建成功的样子
5. Nginx 部署
# 启动Nginx服务
$ systemctl start Nginx
# 设置Nginx服务开机自启
$ systemctl enable Nginx
# 验证Nginx服务是否已经启动
$ systemctl status Nginx
配置 Nginx
$ vim /etc/nginx/nginx.conf
# 需要改权限
user root;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
include /usr/share/nginx/modules/*.conf;
events {
worker_connections 1024;
}
http {
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
include /etc/nginx/mime.types;
default_type application/octet-stream;
include /etc/nginx/conf.d/*.conf;
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
include /etc/nginx/default.d/*.conf;
# 配置首页
root /root/test;
index index.html;
location / {
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
}
完成后需要重启nginx服务