一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第1天,点击查看活动详情。
系列介绍
接下来将记录小白怎样搭建一个完整的前后端分离项目,会有一个系列文章。
其中技术栈包括:
- 服务器:ubuntu
- 前端:vue3 nginx
- 后端:django uwsgi
- 其他: github docker
文章中若出现问题欢迎大家批评。
第二节:jenkins+docker+nginx+vue
第三节:jenkins+docker-compose+django+uwsgi
1.本节简要介绍
Jenkins 是一款开源 CI&CD 软件,由Java语言实现,用于自动化各种任务,包括构建、测试和部署软件。Jenkins 支持各种运行方式,可通过系统包、Docker 或者通过一个独立的 Java 程序。类似的CI&CD工具还有gitlab-cicd、github actions等方式。
相对于gitlab-ci来说,我还是喜欢用jenkins多一点,毕竟它不需要多维护一个代码平台,如果你就是想自己管理全部内容的话,gitlab可能是一个更好的选择
2. 相关技术
- 服务器系统是linux的ubuntu 因为centos将要停止维护了,虽然对个人用户来说影响不是很大,但还是想用一个能持续更新的操作系统。
- 代码托管利用的github gitee也可以,不过自己习惯了github。如果大家访问不来了github可以看一下这篇文章。
- 本文中demo是一个前端项目,所以会用到node,如果你用的是python的话,服务器上记得安装python3、pip3
3. 搭建
i.服务器jenkins下载安装
# 更新 apt / apt-get
apt update
# 安装java jdk
sudo apt install openjdk-11-jdk
sudo apt install default-jdk
# 检查java安装成功
java -version
# 安装jenkins debian
wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -
sudo sh -c 'echo deb https://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'
sudo apt-get install jenkins
# 安装一些需要的工具 例如:前端包管理
sudo apt install node
node -v
# 启动jenkins
service jenkins start
ii.jenkins系统配置
jenkins默认端口是8080,打开服务器ip:8080
根据页面显示打开对应文件得到密码串
sudo cat /var/lib/jenkins/secrets/initialAdminPassword
接下来如果你知道自己需要什么插件就可以选择第二个,新手选第一个就好
推荐安装的插件会比较多一些,如果安装过程中出现了错误,也并不是说不能用,可能对你的项目并没有影响,你可以继续看下去,遇到了问题时可以检查一下问题出现在哪里,面向百度编程。
创建root用户
jenkins url
安装一些插件
Publish Over SSH 与linux机器交互插件
Locale 全中文界面,记得安装重启
nodejs 前端包管理器
iii 系统配置
前面安装了ssh插件,需要填写部署服务器信息
填写完成服务器信息,可以点击下方的test connect测试是否成功连接
因为需要ssh链接服务器,需要服务器私钥凭据,公钥会放在github setting中,这样就可以拉取github
cd ~/.ssh
vim id_rsa # 私钥
vim id_rsa.pub # 公钥
jenkins 添加凭据
如果服务器没有生成密钥,大家可以查询一下生成方法,比较简单我就不赘述了
全局工具配置
前端项目需要nodejs插件
github setting
SSH新建
将服务器公钥填入
iV 新建任务
首页新建任务,选择自由风格的项目
存储构建内容
拉取项目
github选择SSH拉取,认证方式选择刚刚添加的ubuntu密钥凭据,默认master分支拉取
购建方式可以选择轮询,五个星号代表每分钟检测是否代码更新
构建
构建步骤选择执行shell
npm i # 安装依赖
npm run build # 项目打包
tar -zcvf dist.tar.gz 文件目录 文件目录 # 将所有需要压缩文件压缩到 dist中
添加构建后操作
选择SSH
之前的配置服务ubuntu,上面压缩的文件dist
cd /home/ubuntu/test # 目标目录
sudo tar -zxvf dist.tar.gz # 解压
sudo rm -f dist.tar.gz # 删除
保存配置
查看执行结果
执行
查看项目配置、运行记录
查看项目运行时输出日志
问题记录
1.出现这个报错是因为 前端vue3项目运行时服务器node版本太低,升级一下node版本
2.服务器连接失败,检查系统配置中SSH是否可以连接
3.如果构建无法开始可能是服务器公钥私钥填写错误请正确对应填写
成功
文件成功传输到服务器指定文件夹下。