使用Jenkins自动发布django项目

使用Jenkins自动发布django项目

解决方案goocz2025-01-06 21:03:4957A+A-

前面介绍过django项目在Ubuntu上的手动部署,这里介绍一下通过Jenkins自动发布django项目。

Jenkins准备

先检查一下当前环境有没有安装jdk,如果没有就安装一下:

如果下载很慢,可以到software & update这个应用中更新一下镜像源:

更新镜像源的设置位置:

更换源后会自动提醒是否需要更新软件,最好是选择更新。

更新资源后,安装openjdk就比较快了:

安装完成后通过常用的java、javac、java -version三个命令检查一下java环境:

接下来就是下载并安装Jenkins:

使用的命令如下:

curl -fsSL https://pkg.jenkins.io/debian-stable/jenkins.io.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 jenkins

如果以前没安装过curl,可以通过apt-get命令安装一下。

安装Jenkins基本就是按照官方给出的方式进行安装的,官方安装文档地址:

https://pkg.jenkins.io/debian-stable/

安装成功后,可能会启动失败,或者无法打开登录页面,比如这样:

这是因为有个官方的地址访问失败了。只要修改这个文件中的一个地址就可以:

修改成这样:

我使用的是国内的清华大学的镜像地址:

https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

更新地址后重启一下Jenkins:

访问最初登录页面成功:

这个管理员密码可以到控制台的启动日志中查,也可以直接查看这个文件,里面会记录初始管理员密码:

通过密码登录后,就是一些Jenkins初始化的插件安装选择,如果你是照着官方给的安装方式进行安装的,又切换了国内的镜像源,这里的插件应该是能够下载成功的。

如果遇到某些插件安装失败了,没有关系,可以先跳过,进入Jenkins内部去手动安装或者找找安装失败的原因,解决问题后再安装。比较常遇到的安装插件失败原因可能是:

  • Jenkins版本低了。
  • 使用了国外的镜像源。

成功后就进入Jenkins的dashboard页面了:

创建部署django项目的任务

先要设置github(根据实际使用,也可以是gitlab),到github中通过这个路径:头像→Settings→Developer settings→Personal access tokens→Generate new token,勾选以下内容:

点击底部的generate toke,会生成一个token,找个地方记录一下,避免丢失或者忘记。

以前好像是可以用账户名、密码git fetch代码的,但是现在我尝试了几次,都失败告终,后来换token才能正常拉取代码。

回Jenkins去建新任务:

选择freestyle project就可以:

在general中选择GitHub项目,并填入项目地址:

在源码管理中这样设置:

项目源码拉取地址就不用说了,证书类型选择username with password类型,但是密码里面别填github的登录密码,需要填前面获取的token。还有要注意分支名称,如果分支不存在也会导致拉取失败。

如果你的网络不好,可能会遇到即使填的证书和地址都是正确的,但是还是显示访问失败,可以手动访问一下github,看当前是否可以正常访问。

遇到网络不好,拉取代码很慢的时候,可以设置一个拉取代码的超时时间:

构建环境中这样设置一下:

变量中填的还是前面那个token。

然后就是构建:

这里是在拉取完代码后输出一个文本,提示代码拉取完成。然后给脚本添加权限后执行。

脚本内容:

# 关闭当前正在执行的django,如果有很多django再执行,可以再加端口进行过滤
ps -aux | grep python|xargs kill -9
# 后台执行django项目,这样Jenkins的任务就可以顺利完成,避免Jenkins任务一直被
nohup python3 manage.py runserver 0.0.0.0:1234 >django_log.out 2>&1 &

第一次构建的时候,可能会遇到一些模块没有的现象,可以在构建中加入pip install xxxx的命令,install成功过一次后就可以删除这些pip install的命令了。

保存配置后,应该可以正常构建这个任务了:

尝试去访问部署的django项目:

配置自动触发django任务构建

先到github的目标工程中设置github webhooks:

回Jenkins设置一下GitHub servers,入口在Manage Jenkins菜单里面:

找到github server配置部分,按照要求进行配置:

其中新增凭证的时候选择secret text,就可以使用前面得到的github token了。

配置完以后测试一下链接,有这个提示就表示成功:

进入前面创建的任务设置页面:

如果你的Jenkins处于可以被github访问到的机器中,这个时候已经可以自动触发构建了。但是我比较穷,玩的虚拟机,局域网ip无法被github访问到,所以这里就不演示自动触发效果了。

总结

虽然第一次配置Jenkins项目总是会遇到各种各样的坑,例如github拉取失败、找不到模块、没有权限等等。但是一旦配置完成,还是非常方便的。现在软件开发应该都会使用Jenkins或者类似功能的工具,所以作为一个软件技术从业人员,学习一下Jenkins的操作,还是挺有用处的。

点击这里复制本文地址 以上内容由goocz整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!

果子教程网 © All Rights Reserved.  蜀ICP备2024111239号-5