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/ ...
随机推荐
- coursea机器学习课程作业
coursea机器学习课程作业 一 关于此课程 课程地址 图片来自网络 1.官网课程地址传送 2.如果访问官网速度较慢可以上 B站课程地址 机器学习是一门研究在非特定编程条件下让计算机采取行动的学科. ...
- Mac下开发ASP.NET Core应用,我用FineUICore!
在 Mac 下开发 ASP.NET Core 2.0+ 应用,我用FineUICore! FineUICore:企业级 ASP.NET 控件库,10年持续更新,只为你来:http://fineui.c ...
- JS中各种宽度距离小结
js中获取各种宽度和距离,常常让我们混淆,各种浏览器的不兼容让我们很头疼,现在就在说说js中有哪些宽度和距离. 1.名词解释 screen:屏幕.这一类取到的是关于屏幕的宽度和距离,与浏览器无关,应该 ...
- C# 如何使用配置文件保存应用程序里的配置数据
引言 我不知大家早先是如何保存应用程序配置,以备下次打开时使用的,反正我开始学.Net的时候就去研究序列化,以二进制或XML格式的序列化来保存应用程序配置.这样每次都要建立单独的配置类,并书写读写配置 ...
- pypinyin, jieba分词与Gensim
一 . pypinyin from pypinyin import lazy_pinyin, TONE, TONE2, TONE3 word = '孙悟空' print(lazy_pinyin(wor ...
- python-装饰器的最终形态和固定格式 语法糖
import time def timer(f): # 这是一个装饰器函数 def inner(): start = time.time() f() # 被装饰的函数 end = time.time( ...
- 使用systemback制作Ubuntu自定义系统镜像和系统备份(抄)
使用systemback制作Ubuntu自定义系统镜像和系统备份 2017年06月23日 16:17:51 BWBOT 阅读数:10714 原链接:https://community.bwbot. ...
- DNS 地址
腾讯DNS:119.29.29.29百度DNS: 180.76.76.76 阿里DNS:223.5.5.5 223.6.6.6 成都电信: 61.139.2.69
- [BJOI2019]排兵布阵——分组背包
题目链接: [BJOI2019]排兵布阵 对于每座堡垒,将$s$个对手排序,显然如果安排的兵力能打败第$i$个对手就一定能打败前$i-1$个. 那么对于第$i$座城堡,可以看做有$s+1$个物品(可以 ...
- MAVEN打包同时引入本地jar包
方法一(pom文件指定jar包目录进行引入) 1.将需要手动引入的包放在项目目录下,如lib目录下: 修改pom文件,引入依赖并且将scope设置为system 2.同时配置maven打包插件 方法二 ...