jenkins实践

141 阅读2分钟

一、Ubuntu环境下安装Jenkins

安装命令

pkg.jenkins.io/debian-stab…

    
  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权限问题

image.png

添加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. 创建任务,配置源码,

image.png

image.png

3. 仓库配置钩子

image.png

URL格式为 http://<User ID>:<API Token>@<Jenkins IP地址>:端口/generic-webhook-trigger/invoke User ID 和 Api Token在系统管理-管理用户-admin-设置里

image.png Jenkins IP地址和端口是你部署jenkins服务器的ip地址,端口号没改过的话就是8080。
密码填你服务器密码

4. 测试

你的Jenkins左侧栏构建执行状态里将会出现一个任务

三、实现自动化构建

1. 安装nodejs插件

先系统管理-插件管理安装,然后系统管理-全局工具配置 image.png

2. 任务配置

image.png

3. 构建

image.png

4. 项目的工作空间,将会发现多了dist和node_modules两个文件夹

四、实现自动化部署

1. 安装Publish Over SSH 插件

先系统管理-插件管理安装,然后系统管理-系统配置的Publish over SSH

image.png 测试

image.png

2. 任务配置

image.png

注意:需要提前配置nginx对该项目的托管

五、拉取github不同代码分支,发布不同环境

1. 安装插件git paremeters

2. 勾选参数化构建过程

image.png 源码管理需要使用这个参数

image.png

添加一个环境变量 image.png 修改shell构建对应包 image.png 在ssh配置文件目录(模拟部署不同的环境) image.png

六、邮件通知

1. 开通SMTP服务

我使用qq邮箱,在设置-账号菜单开启,拿到授权码 image.png

2. jenkins location

image.png

4. jenkins配置邮件通知

需要填 SMTP server

port使用默认

账号是邮箱

密码不是邮箱密码是SMTP的授权码 image.png

image.png

image.png

5. 任务配置

image.png

NGINX安装

apt-get install nginx
nginx -v