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
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键
通过vim编辑复制命令
[jenkins]
name=Jenkins-stable
baseurl=http://pkg.jenkins.io/redhat
gpgcheck=1
输入后按键esc->shift键+:再输入wq(即保存并退出)
安装Jenkins
dnf install jenkins #--nogpgcheck(可以不加)
启动Jenkins的服务:
systemctl start jenkins
systemctl status jenkins
systemctl enable jenkins
Jenkins默认使用8080端口提供服务,所以需要加入到安全组中:
这时候访问就会出现
因此继续输入命令查看密码
cat (查看服务器中某一个文件内容)
cat /var/lib/jenkins/secrets/initialAdminPassword
复制密码输入即可
默认自动安装就可以
3. Jenkins用户
安装成功过后需要你新建管理员用户你可自定义
上一步输入生成密码太繁琐所以这里新建一个管理员即可以后用来登录记住就行了
访问centos中的某些文件夹,默认Jenkins使用的用户是 jenkins,可能会没有访问权限,所以我们需 要修改一下它的用户:
方法1
修改文件的路径:/etc/sysconfig/jenkins
之后需要重启-下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.
2.
3.
4.
5.
构建环境:
注意:我们需要搭建Node的环境
- 配置Node的环境位置;
- 安装Node的插件;构建环境:
配置Node的环境位置
安装Node的插件
安装后需要进行重启即可
重启完成后进行配置点击:系统管理->全局工具配置
6. 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
构建执行的任务:
- 查看Node的版本等是否有问题
- 执行 npm insta11 安装项目的依赖;
- 移除原来mall_cms文件的所有内容;
- 将打包的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打包后文件位置目录
因为配置的时间是半小时后执行,但是我们这里可以点击立即执行直接构建
这次可能会构建失败 有个问题,默认Jenkins去访问我们上面的root文件夹是没有权限的,
构建失败可以查看构建失败的控制台信息
访问上面第三条 Jenkins用户
或者这里解决
再次构建
nginx安装和配置
1. 安装nginx
dnf search nginx
我这里使用的是CentOS8,你购买服务器可以选择最新的 CentOS Stream看个人喜好
使用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的用户和默认访问目录:
配置用户
通过Linux命令创建文件夹和文件:
mkdir /root/mall_cms
cd /root/mall_cms
touch index.html
配置访问目录:
安装后Jenkins无法访问的话需要进行修改防火墙查看排查
1.确定jenkins是否启动了
systemctl status jenkins
这里发现jenkins的状态是正在运行的
2.检查防火墙
systemctl status firewalld
防火墙正运行,应该是没有开放jenkins的端口:
3.我们先用下面的代码来查看有没有开放我们设置的jenkins的端口:
firewall-cmd --list-ports
4.如果发现没有jenkins的端口,则用
firewall-cmd --permanent --zone=public --add-port=8080/tcp
开启后可以再查看一次是否开启使用上一个查看命令查看
这时候新增的8080已经存在
5.开启已经配置好的jenkins的端口,然后在重启防火墙,注意一定要重启防火墙!
systemctl reload firewalld
然后访问即可;如果阿里云的话记得要配置开放·端口号
报错处理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