1.運行環境和規格
系統環境如下:
Linux版本 |
CentOS 7 |
JDK版本 |
jdk-8u141以上 |
PostgreSQL版本 |
10.x |
應用構建部署環境如下:
git |
1.8.3.1 |
node |
node-v8.11.4-linux-x64 |
nginx |
1.6.2 |
2.基礎環境安裝與配置
基礎環境的安裝與配置請請參考運維編寫基礎環境部署文檔
2.1.安裝 JDK
2.2.安裝 PostgreSQL
2.3.安裝 git
2.4.安裝 node
2.5.安裝 nginx
3.數據庫部署配置
3.1.主機信息
部署數據庫服務器的主機信息如下:
- 服務器IP:59.214.215.xx
- 主機賬號1:root 密碼:xxxxx
- 主機賬號2:root 密碼:Hlw..xxx
3.2.pg數據庫安裝
這部分內容參考上面的基礎環境部署章節
3.3.數據庫配置
這部分內容主要有創建數據庫、執行相應的數據庫腳本、或者遷移數據庫的一些操作步驟,具體可根據項目情況來進行數據庫配置,就目前的狀態,我們的目標就是將正式環境10.10.1.xxx上的pg數據庫遷移到測試環境59.214.215.xxx上來。下面即具體的操作步驟:
- 進入正式環境10.10.1.xxxx服務器
- 使用ps命令查找pg數據庫安裝目錄
- 通過查看,安裝目錄為/opt/haishu/local/postgresql/bin 進入安裝目錄
- 使用pg數據庫的導出命令
ps -ef | grep pg cd /opt/haishu/local/postgresql/bin ./pg_dump -h 10.10.1.xx -U postgres msgmanage >/opt/haishu/backup/msgmanage.sql
其中:
- -h表示的是我們要導出的數據庫所在的服務器地址,也就是10.10.1.1xx
- -U表示的是正式環境數據庫使用的用戶名
- ig_file_xycq表示該使用的數據庫的名稱
- /opt/haishu/backup/ig_file_xycq.sql 表示我們將導出的數據存放的路徑
在使用這個命令時會遇到了一個問題,顯示的是: error while loading shared libraries: libpq.so.5: cannot open shared object file: No such file or directory 從網上找到了解決方案 #使用find命令找到libpq.so.5所在的目錄 find / -name libpq.so.5 #創建/usr/lib/libpq.so.5的軟連接 ln -s /opt/haishu/local/postgresql/lib/libpq.so.5 /usr/lib/libpq.so.5 #創建/usr/lib64/libpq.so.5的軟連接 ln -s /opt/haishu/local/postgresql/lib/libpq.so.5 /usr/lib64/libpq.so.5 然后再用次命令即可 cd /opt/haishu/local/postgresql/bin ./pg_dump -h 10.10.1.xxx -U postgres msgmanage >/opt/haishu/backup/ 進入我們導出數據存放的目錄 使用scp命令將導出的sql文件傳送到59.214.215.xx中,具體放在/opt/haishu/backup/msgmanage/下 cd /opt/haishu/backup/ ll scp -r ./msgmanage.sql ztyw@59.214.215.xxx:/opt/haishu/backup/msgmanage/ 進入59.214.215.xx服務器,並使用ps命令來查找pg安裝的目錄 進入pg安裝的目錄 ps -ef | grep pg cd /opt/haishu/local/pgsql/10.1/bin ll ##使用pg數據庫導入命令 ./psql -U postgres msgmanage_new < /opt/haishu/backup/msgmanage.sql 其中: -U表示的是測試環境數據庫使用的用戶名 msgmanage_new表示該使我們在測試環境創建的數據庫的名稱,導入之前先創建此數據庫 /opt/haishu/backup/msgmanage.sql 表示我們將使用哪個文件的數據進行導入操作
4. 應用構建部署
git拉取代碼並進行代碼的編譯打包操作步驟用jenkins實現。
4.1. 主機信息
部署應用服務器的主機信息如下:
- 服務器IP:59.214.215.xxxxx
- 主機賬號1:root 密碼:xxx
- 主機賬號2:ztyw 密碼:Hlw..2018
4.2. 部署操作約定
- 部署的主目錄在:/opt/haishu/app
- xxx的后端在:/opt/haishu/app/backend-v2
- xxx的前端在:/opt/haishu/app/frontend-v2
- 各個不同的子系統以子系統的名稱在前端和后端下命名
- 如果是前后端一起的,則直接在/opt/haishu/app下建子系統目錄
4.3.部署操作步驟
4.3.1.前端操作步驟
4.3.1.1.獲取前端dist文件
首先從開發處獲取前端的dist文件
4.3.1.2.創建目錄
首先在/opt/haishu/app/frontend-v2目錄建子系統的前端文件目錄:message-management
cd /opt/haishu/app/frontend-v2 mkdir message-management ll
4.3.1.3.解壓文件
獲取到了前端的壓縮包,則使用如下命令解壓
解壓完文件后,將解壓后的dist文件放入到message-management目錄下即可。
tar -zxvf xxx.tar.gz cd message-management ll
4.3.1.4.nginx配置
進入nginx目錄(我們可以使用如下方式查找進程目錄:ps -ef | grep nginx並找到nginx的進程pid,然后使用ls -l /proc/pid 來找相應進程所在的目錄)
ps -ef | grep nginx ls -l /proc/PID cd /opt/app/local/tengine/conf/ ll
而nginx一般的配置是放在nginx.conf配置文件下的,進入nginx.conf文件,主要配置后端服務名、后端server地址,配置內容參考如下(注意最下面的include conf.d/*.conf表示的是這個nginx.conf的配置內容包含了conf.d目錄下的所有以.conf結尾的配置文件)。我們進入conf.d目下,查看到對應的配置文件如下:
vim nginx.conf cd conf.d/ ll
我們xx系統二期的配置文件統一放在credit-system-v2.conf文件中,進入credit-system-v2.conf文件進行配置,如下所示:
vim credit_system-v2.conf
- 當然我們也可以直接在這個配置文件下配置第4個操作步驟中的服務名、后端地址;
upstream message-backend-v2{
server 59.214.215.xxx:18082;
}
- listen為我們設置前端需要訪問的端口號,需要確保我們的端口號沒有被使用,可使用命令:lsof -i:port 查看port端口號占用情況;
- root后面配置我們前端的dist文件所在目錄;
- 后面的location相關的內容中涉及的服務名,均要改為我們上面設置的upstream,即message-management-v2
4.3.1.5.啟動nginx
進入/opt/app/loacl/tengine/sbin中運行。
cd /opt/app/local/tengine/sbin/ ./nginx -c /opt/app/local/tengine/conf/nginx.cong -p /opt/app/localtengine
4.3.2. 后端操作步驟
4.3.2.1.獲取后端部署程序包
首先從開發處或者jenkins獲取到xxx系統相關的部署程序包,里面主要包含啟動腳本:start.sh、停止腳本:stop.sh、版本說明配置文件:version.properties、應用配置文件:application.properties以及Java程序包:xxx.jar等。
4.3.2.2.創建目錄
進入/opt/haishu/app/backend-v2目錄,並在該目錄下建一個xxxx系統的后端文件目錄message-management。
cd /opt/haishu/app/backend-v2 mkdir message-management
4.3.2.3.獲取文件
將獲取到的應用相關的部署包及相關配置文件都放進message-management文件夾中,包含的內容如下圖所示:
cd message-management ll
4.3.2.4.查看並修改版本配置文件
查看version.properties中對應的版本與java包的版本是否一致,如果不一致,則將文中的VERSION更改與java包的版本一致,如下圖所示,文件中的VERSION與包的版本一致,這里不做修改。
vim version.properties
4.3.2.5.查看並修改應用配置文件
查看並修改application.properties文件,主要是修改相應的數據庫配置的url,classname,username,password幾個部分,具體如下:
vim application.properties
4.3.2.6.啟動后端
然后運行start.sh腳本啟動后端
./start.sh
4.3.2.7.查看進程啟動情況
使用ps命令查看進程啟動情況,如果啟動正常,那么實際操作到此就結束了,但如下我們可以看出實際上我們的郵件系統並未啟動起來,所以我們需要查看日志並處理啟動報錯的問題。
ps -ef | grep message
4.3.2.8.查看日志
查看日志文件,報錯信息為:/tmp/spring.log文件權限不夠,則可能需要使用root賬號執行,或者更改該文件的用戶權限。
cd log #進入日志目錄 ll #查看目錄有哪些日志文件 tailf mm-web-metric.2019-06-04.0.log #查看最新的日志文件
4.3.2.9.處理日志報錯
從上圖的日志文件報錯信息我們可以看出,報錯原因是因為/tmp/spring.log權限不夠,所以我們需要修改/tmp/spring.log文件的權限。
cd /tmp ll
從上圖我們確實可以看出,spring.log文件所屬用戶為root的,而我們正使用的是ztyw用戶,所以這里我們可以將spring.log文件的權限更改為ztyw,更改如下所示:
sudo chown ztyw ./spring.log chgrp ztyw ./spring.log ll
4.3.2.10.重新啟動后端
修改好后,再進入后端目錄,重新運行./start.sh文件啟動,並查看進程
cd /opt/haishu/app/backend-v2/message-management ./start.sh ps -ef | grep message
4.3.2.11. 訪問地址
瀏覽器中輸入59.214.215.xx:8012即可訪問xx系統