jenkins+supervisor实现django项目的自动部署(ubuntu)
没有安装supervisor的话首先安装supervisor, apt install upservisor 安装supervisor大概率会出现问题,不推荐,最好是用pip 安装, 注意python环境应为python2, 没有python2环境要安装python2,
sudo apt install python sudo apt install python-pip pip2 install supervisor
supervisor 安装好后要生成配置文件, 命令(如果遇到权限问题,切换到root用户,或手动创建配置文件/etc/supervisord.conf):
echo_supervisord_conf > /etc/supervisord.conf
这时要在supervisord.conf中配置我们的项目(将下面的代码放到配置文件最下面):
[program:test] #项目名
directory=/home/project/test # 项目根目录
command=/home/xiaoxin/anaconda3/envs/health/bin/python /home/project/test/manage.py runserver 127.0.0.1:9090 # 设置项目运行命令及启动端口
# command=/home/xiaoxin/anaconda3/envs/health/bin/gunicorn -w 2-b 127.0.0.1:9090 test.wsgi:application # 如果用gunicorn,注意不要加 -D
#supervisor启动的时候是否随着同时启动,默认True
autostart=true
autorestart=false
stopasgroup = true # 用于停止进程组
killasgroup = true # 用于关闭进程组
# 日志输出
stderr_logfile=/tmp/test_stderr.log
stdout_logfile=/tmp/test_stdout.log
user=test #脚本运行的用户身份
配置好后supervisord命令启动supervisor。
supervisorctl status # 查看supervisor下各进程状态
supervisorctl reload # 重启supervisor
supervisorctl stop test # 关闭test进程
supervisor start test # 开启test进程
supervisor restart test # 重启test进程
在安装jenkins之前,先要在服务器上安装java环境:
到官网下载合适的jdk,http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html, 如jdk-8u201-linux-x64.tar.gz
解压后放到合适的位置, 然后
vim ~/.bashrc # 编辑java环境变量
在文件最后插入:
export JAVA_HOME=/home/test/jdk201 # 加粗部分换成你的地址
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
然后 source ~/.bashrc 让java环境变量生效,
这时 运行 java -version 会出现你安装的jdk 版本号,边说明java环境已经安装成功
接下来安装jenkins:
wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add -
sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'
sudo apt-get update
sudo apt-get install jenkins
安装好后jenkins便已启动,没有启动的话sudo service jenkins start 命令启动jenkins.
假设服务器的地址是172.17.0.3, 在浏览器中访问jenkins: 172.17.0.3:8080, 跟据提示输入密钥, 安装上推荐的插件, 输入用户名和密码。
接下来要新建一个任务:
接下来这部至关重要,就是配置git
这里以gitlab为例,将git仓库地址填入, 然后添加凭证,添加凭证的方式有很多,这里只介绍一种, 即通过服务器git的私钥来配置(前提是已经把git的公钥加入到gitlab中)。
点击添加后,在Crediential一栏中选择刚添加的凭证,保存即可。
接下来验证我们添加的凭证是否正确
点击立即构建,如果成功了,就说明我们的凭证呢个已经生效了。
接下来要配置webhook, 让其监听我们push代码时,完成自动构建。
构建分两部:
1. jenkins中生成webhook url 和Secret token
2. 将webhook 和Secret token 加入到gitlab中:
然后试着推一下代码,如果jenkins完成了自动构建,说明webhook已经配置好了。
接下来, 我们要重新配置下supervisor ,因为jenkins将我们的代码下载到了其工作目录下(在全局配置中可以修改), 其默认的工作目录为/var/lib/jenkins/workspace.
构建完成后还需要重启supervisor下的进程,
ps: 如果因为Permission denied构建失败, 去/etc/default/jenkins中将jenkins_user和Jenkins_group改为root
这样我们就完成了django的自动部署
jenkins+supervisor实现django项目的自动部署(ubuntu)的更多相关文章
- jekins 实现Django项目的自动部署(ubuntu16.04,python2.7,django1.11)
1.依赖的插件 如果插件下载失败 更换源 http://mirror.xmission.com/jenkins/updates/current/update-center.json 因为我们只需要构建 ...
- 5分钟快速掌握Jenkins,项目一键自动部署
5分钟快速掌握Jenkins,项目一键自动部署 目录 前言 Jenkins是什么? Jenkins环境安装搭建 Jenkins基本使用介绍 Jenkins快速构建项目,项目自动化部署 学习总结 前言 ...
- django项目上线环境部署
django项目上线环境部署 第一步 安装python虚拟环境 1 安装虚拟环境virtualenv 2 安装virtualenvwrapper工具 3 确认virtualenvwrapper.sh脚 ...
- Jenkins 集成Maven打包SpringBoot项目并自动部署到Tomcat服务器
提前条件: 1.在Jenkins服务器上安装Git.JDK和Maven 2.准备另一台服务器并安装Tomcat 3.Gitlab服务器 4.Gitlab仓库中上传SpringBoot项目代码 第一步, ...
- Jenkins+Gitlab配置Webhook实现提交自动部署
一.概述 在上一篇文章,链接如下: https://www.cnblogs.com/xiao987334176/p/11434849.html 已经实现了 Jenkins+harbor+gitlab+ ...
- 使用Ansible进行项目的自动部署(Tomcat、Weblogic)
原文:https://github.com/x113773/testall/issues/4 问题:Weblogic/Tomcat 通过JAVA直接远程调用或者调用本地Shell还是通过Ansible ...
- docker+jenkins实现spring boot项目持续集成自动化部署
一.首先jenkins与docker的安装参考下面链接 安装jenkins: https://www.cnblogs.com/jescs/p/7644635.html 安装docker:ht ...
- django 项目开发及部署遇到的坑
1.django 连接oracle数据库遇到的坑 需求:通过plsql建立的oracle数据表,想要django操作这几个表 python manage.py inspectdb table_name ...
- 用Git的hooks实现项目的自动部署
https://segmentfault.com/a/1190000003836345?_ea=386770 http://blog.csdn.net/wsyw126/article/details/ ...
随机推荐
- 基本服务器的AAA实验(Cisco PT)
1.实验拓扑 2.不通网段间的ping通测试 从pc-a ping到pc-b 从pc-a ping到pc-c 从pc-b ping到pc-c 3.配置过程 a.在路由器R1上配置一个本地用户账号并且利 ...
- 服务消费者Feign和Ribbon的区别
1.Ribbon通过注解@EnableEurekaClient/@EnableDiscoveryClient向服务中心注册: PS:选用的注册中心是eureka,那么就推荐@EnableEure ...
- Shell企业案例实战和企业面试题
shell企业面试题 1.批量创建带有随机小写字符文件程序 使用for循环在/pizza目录下创建10个html文件,其中每个文件包含10个随机小写字母加固定字母_pizza 1.思路分析: 核心是: ...
- python学习——读取染色体长度(四:获取最长染色体的编号)
# 读取fasta # 解析每条序列的长度 chr_len = {'chr1':10,'chr2':20,'chr3':30,'chr4':40,'chr5':15} # 求和 total_len = ...
- 本地跑 spark ui 报错
java.lang.NoSuchMethodError: javax.servlet.http.HttpServletRequest.isAsyncStarted()Z at org.spark_pr ...
- Servlet 易错点和注意点
目录 @WebServlet("/")与@WebServlet("/*")的区别 @WebServlet("/")与@WebServlet( ...
- 2019-04-09 SpringBoot+Druid+MyBatis+Atomikos 的多数据源配置
前面部分是网上找的,我按照网上写的把自己搭建的过程展示一次 1.引入依赖 目前项目本来使用到了Mybatis plus(在自己的Mapper接口中继承BaseMapper获得基本的CRUD,而不需要增 ...
- nginx的限流问题
nginx的限流问题 http{ limit_req_zone $binary_remote_addr zone=req_one:10m rate=100r/s;server{ listen 8080 ...
- 微信小程序之初探(常见语法 VS vue)常见问题(点击不生效,数据绑定)
最近在调研微信小程序开发,对于一个前端小白来说,在各种框架都还用不熟的情况下,再来开发小程序确实还是不容易. 小程序出来之初,听过演讲,看过一点点儿视频,感觉和angular语法有点相似(PS:那是也 ...
- Windows 上连接本地 Linux虚拟机上的 mysql 数据库
查看本机ip ifconfig 查看当前的 3306 端口状态 netstat -an|grep 3306 当前是外部无法连接状态 修改访问权限 默认的 mysql 是只能本机连接, 因此需要修改配 ...