部署代碼遇到坑

獨立開發這個項目之後,各種雜事也要單獨處理了,也許這就是服務端「雜」的原因之一吧。

之前已經在自己的機器上去除了XAMPP的開發環境,手動部署了MAMP的環境,只差mysql環境沒裝好,brew安裝mysql有些權限的問題,mysql還是使用的XAMPP中的mysql。把Apache服務器切換到Nginx(openresrty),本來以爲部署這個環境已經沒有什麼問題。以下今天早上將代碼部署到 內部測試機器 沙箱 遇到的坑。

1、scp 沙箱沒有scp,需要傳一些文件到沙箱服務器,當時確實考慮到換一個方法來發文件。也是年輕,想着沙箱現在也是內部使用,我裝個scp應該不會有問題,yum安裝,機器竟然就掛了 orz,找運維重啓了機器。以後遇到這種事情還是不要輕舉妄動。

2、機器重啓,個人目錄下的文件全部沒了,這個點,我竟然就想過要先解決!這個坑最深。

3、我直接jenkins部署了項目管理後臺的代碼,jenkins應該是root權限運行,直接clone了最新代碼,權限爲root,坑3。因爲使用smarty,會生成模板緩存文件,nginx的運行用戶爲www,無法讀寫某個文件夾,產生不了文件,導致後臺進去一隻是白屏,也沒有報錯。一度認爲是rewrite的原因。後來查看了nginx的error.log才發現這個問題。

4、沙箱是一臺docker機器,不是我熟悉的centos,開啓各種環境的指令也不一樣。

5、線上是集羣,代碼裏面一些host指向各個機器,沙箱機器卻無法編輯/etc/hosts文件,也無法修改爲可寫。無法執行sudo命令。只能手動更改代碼裏面的host了。機器掛掉之前hosts文件是被修改過的,後面要找運維詢問如何修改這個文件,否則每次部署代碼都要修改host。

6、數據庫變更文件沒有先導入。

7.沙箱是測試機器,一起開發人員上傳過很多測試文件,但是因爲坑1,文件全沒了....找運維恢復後,以上步驟請重新來過......

總結一下我犯的錯誤:

1、不該隨便在陌生的機器上執行會產生修改機器的指令,安裝軟件,修改陌生的系統文件等。

2、遇到問題一定不能着急,一定要先想辦法進行最大程度的恢復。

3、由於項目部分沒有設置jenkins,需要手動進行代碼合併,對於代碼的修改我必須現有一個記錄。

4、先想好一個部署的checklist,確保萬無一失。

在總結一下之後需要部署這臺服務器的步驟。

1、代碼合併提交到svn倉庫。

2、數據庫遷移文件。

3、需要手動合併的代碼,一定要現有一個記錄,好進行文件替換。

4、重啓nginx


暫時想到這些,其實也不是全是壞消息。

好消息是  scp 能用了哭

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章