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的自動部署


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM