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/ ...
随机推荐
- Codeforces #541 (Div2) - F. Asya And Kittens(并查集+链表)
Problem Codeforces #541 (Div2) - F. Asya And Kittens Time Limit: 2000 mSec Problem Description Inp ...
- 使用git 遇见的错误使用到的命令
查看远端地址 git remote -v 需要重新添加地址 git remote set-url origin xxx 远程新的地址 git remote add origin_new 设置用户名 ...
- HTTPS中间人攻击实践(原理·实践)
前言 很早以前看过HTTPS的介绍,并了解过TLS的相关细节,也相信使用HTTPS是相对安全可靠的.直到前段时间在验证https代理通道连接时,搭建了MITM环境,才发现事实并不是我想的那样.由于 ...
- vue项目接口域名动态获取
需求: 接口域名是从外部 .json 文件里获取的. 思路: 在开始加载项目前 进行接口域名获取,然后重置 接口域名的配置项. 实现: 1.config/index.js 文件 进行基础配置 impo ...
- 关于配置ssh免密码登录后,仍提示输入密码
一.在A端创建密钥对: [root@A ~] -P '' 二.如果B机器没有.ssh和authorized_keys文件则创建这个文件夹和文件先,创建后要chown改成当前用户的所属者,其次也要改: ...
- JavaScript加载次序问题
3个文件,一个index.html如下 <!DOCTYPE html> <html> <head> <meta charset="UTF-8&quo ...
- BaseEntity
@MappedSuperclasspublic class BaseEntity { @Id @GenericGenerator(name="idGenerator", strat ...
- 基于zookeeper实现分布式锁
Zookeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Hadoop和Hbase的重要组件. 特性: 1.节点数据结构,znode是一个跟Unix文件系统路径相似的节点,可以往这个节点存 ...
- python 包以及循环导入
包的认识 包通过文件夹来管理一系列功能相近的模块 包:一系列模块的集合体重点:包中一定有一个专门用来管理包中所有模块的文件包名:存放一系列模块的文件夹名字包名(包对象)存放的是管理模块的那个文件的地址 ...
- jQuery在页面加载的时候自动调用某个函数的方法
第一种:$(document).ready(function(){ func(xxx)//执行函数}); 第二种:$(function(){ func(xxx)//执行函数}); 第三种:jQuery ...