一、Ubuntu环境下安装Jenkins
安装命令
curl -fsSL https://pkg.jenkins.io/debian-stable/jenkins.io-2023.key | sudo tee \
/usr/share/keyrings/jenkins-keyring.asc > /dev/null
echo deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc] \
https://pkg.jenkins.io/debian-stable binary/ | sudo tee \
/etc/apt/sources.list.d/jenkins.list > /dev/null
sudo apt-get update
sudo apt-get install fontconfig openjdk-11-jre
sudo apt-get install jenkins
启动命令
# 启动 Jenkins 服务
systemctl start jenkins
# 重启 Jenkins 服务
systemctl restart jenkins
# 停止 Jenkins 服务
systemctl stop jenkins
# 查看 Jenkins 服务状态
systemctl status jenkins
查看管理员默认密码
cat /var/lib/jenkins/secrets/initialAdminPassword
docker权限问题
添加jenkins用户到用户组
groupadd docker
usermod -a -G docker jenkins
cd /var/run
chmod 777 docker.sock
二、实现git钩子功能
提交代码时通知jenkins,这是自动构建自动部署(前提)
原理:在远端仓库上配置一个Jenkins服务器的接口地址,当本地向远端仓库发起push时,远端仓库会向配置的Jenkins服务器的接口地址发起一个带参数的请求,jenkins收到后开始工作
1. 安装 Generic Webhook Trigger 触发器插件
2. 创建任务,配置源码,
3. 仓库配置钩子
URL格式为 http://<User ID>:<API Token>@<Jenkins IP地址>:端口/generic-webhook-trigger/invoke
User ID 和 Api Token在系统管理-管理用户-admin-设置里
Jenkins IP地址和端口是你部署jenkins服务器的ip地址,端口号没改过的话就是8080。
密码填你服务器密码
4. 测试
你的Jenkins左侧栏构建执行状态里将会出现一个任务
三、实现自动化构建
1. 安装nodejs插件
先系统管理-插件管理安装,然后系统管理-全局工具配置
2. 任务配置
3. 构建
4. 项目的工作空间,将会发现多了dist和node_modules两个文件夹
四、实现自动化部署
1. 安装Publish Over SSH 插件
先系统管理-插件管理安装,然后系统管理-系统配置的Publish over SSH
测试
2. 任务配置
注意:需要提前配置nginx对该项目的托管
五、拉取github不同代码分支,发布不同环境
1. 安装插件git paremeters
2. 勾选参数化构建过程
源码管理需要使用这个参数
添加一个环境变量
修改shell构建对应包
在ssh配置文件目录(模拟部署不同的环境)
六、邮件通知
1. 开通SMTP服务
我使用qq邮箱,在设置-账号菜单开启,拿到授权码
2. jenkins location
4. jenkins配置邮件通知
需要填 SMTP server
port使用默认
账号是邮箱
密码不是邮箱密码是SMTP的授权码
5. 任务配置
NGINX安装
apt-get install nginx
nginx -v