使用Jenkins部署Python專案
廖大使用Fabric部署的。我使用Jenkins
試試部署過程。雖然說是用python專案部署測試的,但其他專案也是同理的。
參考Jenkins+Python部署完整版,不過安裝方式不同。
安裝tomcat
yum install tomcat
安裝jenkins
上面rpm源失效了,找一個
http://pkg.jenkins-ci.org/redhat/
sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat/jenkins.repo sudo rpm --import https://pkg.jenkins.io/redhat/jenkins.io.key yum install jenkins
- 啟動jenkins
/etc/init.d/jenkins start
啟動後訪問,IP:8080無反應,用netstat -tnlp | grep 8080
可看到java服務是成功啟動的。設定安全組埠後,可以訪問。
- 初始化Jenkins
在制定位置複製密碼填入頁面後繼續,選擇了git
和github
外掛。
安裝完成,在新建任務之前,需要把專案放到git上去。
- 釋出git
提交log空資料夾,忽略下面所有檔案:Git 忽略資料夾下的檔案,但是保留空資料夾
# ignore all except .gitignore file * !.gitignore
繼續上路...
- 配置Jenkins
參考文章中的下載外掛和更新跳過。直接配置,填寫私鑰等。
儲存後構建:
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
... ...
ERROR: Error cloning remote repo 'origin'
是因為配置了GIT,在最前面還勾選並填了github專案地址,去掉構建Ok.
- 構建
等等,好像哪裡不對。構建的位置去哪了,我的伺服器目錄就沒填啊。構建地址呢?
Started by user xxxx
Building in workspace /var/lib/jenkins/workspace/python部落格
> git rev-parse --is-inside-work-tree # timeout=10
使用的預設目錄。
搜尋了一下Jenkins 構建 目標地址
之類的竟然沒搜到想要的結果。!!
Bulid下新增執行Shell,移動檔案
\cp -rf $WORKSPACE/$JOB_NAME/* /xxx/web/
$WORKSPACE
/$JOB_NAME
是 工作目錄和專案名
+ cp -rf '/var/lib/jenkins/workspace/pythonBlog/pythonBlog/*' /xxx/web/
cp: cannot stat ‘/var/lib/jenkins/workspace/pythonBlog/pythonBlog/*’: No such file or directory
Build step 'Execute shell' marked build as failure
看來不需要專案名,目錄$WORKSPACE
就直接是專案所在路徑沒錯。
之後一直報許可權錯誤 Permission denied, 執行指令碼無許可權。
cp: cannot remove ‘/xxx/web/log/.gitignore’: Permission denied
cp: cannot create regular file ‘/xxx/web/README.md’: Permission denied
cp: cannot remove ‘/xxx/web/www/pymonitor.py’: Permission denied
cp: cannot remove ‘/xxx/web/www/db/table.sql’: Permission denied
cp: cannot remove ‘/xxx/web/www/webFrame.py’: Permission denied
......
網上有一些解決辦法jenkins 許可權問題、以root使用者執行jenkins中shell命令 都是修改jenkins為root使用者組或者直接用root去執行了。因為我只一個專案,只修改了資料夾使用者許可權為jenkinschown -R jenkins:root /xxx/web
即可。重啟服務service jenkins restart
後再次構建,成功!
最後在配置加計劃任務SCM H/5 * * * *
五分鐘一次,下次修改了測試。