centos7 部署YApi


===============================================

 2018/6/5_第2次修改                       ccb_warlock

 

 更新說明:

 2018/6/5:在4.2中增加LDAP、注冊的配置信息;

                  增加了"六、升級YApi"的內容;

===============================================

YApi是去哪兒移動架構組開源的API管理系統,之前使用碼雲上開源的CrapApi,但是由於原作者很久沒有更新維護且聽公司開發人員說YApi功能更為強大,故進行部署。

官方文檔:https://yapi.ymfe.org/documents/index.html

  


一、准備工作

1.1 環境

操作系統:centos7(CentOS-7-x86_64-Minimal-1708)

環境要求:

  • nodejs(7.6+)
  • mongodb(2.6+)

  


二、部署nodejs

部署nodejs盡可能選擇偶數版本,因為偶數版本官方有較長的維護時間,故這次選擇8.x。

 

# 獲取資源

curl -sL https://rpm.nodesource.com/setup_8.x | bash -

 

# 安裝

yum install -y nodejs

 

# 查看node版本

node -v

 

# 查看npm版本

npm -v

  


三、部署mongodb

 mongodb奇數版(如3.5)是開發版本,故選擇安裝v3.4。

 

3.1 添加yum源

 # 修改文件mongodb-3.4.repo

vim /etc/yum.repos.d/mongodb-3.4.repo

 添加下面的內容,wq保存。 

[mongodb-org-3.4]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.4/x86_64/
gpgcheck= 0
enabled=1

 

3.2 安裝

yum install -y mongodb-org

 

3.3 禁用selinux

 官方教程有提到selinux對mongodb會產生負面影響,故選擇禁用。

 

 # 修改config文件 

vim /etc/selinux/config

 

 將SELINUX=enforcing改為SELINUX=disabled,wq保存。

 

 # 重啟OS 

reboot

 

 3.4 關閉防火牆

 由於需要做數據遷移,所以直接省事將防火牆直接關了。

 

 # 關閉,並取消開機啟動

systemctl stop firewalld
systemctl disable firewalld

 

 3.5 啟動

systemctl start mongod

 


 四、部署YApi

 4.1 安裝

npm install -g yapi-cli --registry https://registry.npm.taobao.org
yapi server 

 

 根據提示,瀏覽器訪問 http://部署YApi服務器的IP:9090。

 

 

 填寫完信息后,點擊“開始部署”。(大概等待1分鍾)

 

 # 退出當前狀態

CTRL + C

 

 4.2 修改配置

這里我們不急着根據提示進行啟動,有些參數我們可以通過修改配置達到。

 

 # 修改config.json 

vim /root/my-yapi/config.json

 修改下面的內容(郵箱可以不用163的),wq保存。 

{
  "port": "80",
  "adminAccount": "yizitadmin@yizit.cn",
  "db": {
       "servername": "127.0.0.1",
       "DATABASE": "yapi",
       "port": "27017"
   },
  "mail": {
       "enable": true,
       "host": "smtp.163.com",
       "port": 465,
       "from": "可用於發送郵件的163郵箱",
       "auth": {
           "user": "163郵箱",
           "pass": "163郵箱對應的密碼或授權碼"
       }
  },
  "ldapLogin": {
      "enable": true,
      "server": "ldap://你的LDAP服務器IP:389",
      "baseDn": "CN=Admin,CN=Users,DC=test,DC=com",
      "bindPassword": "123456",
      "searchDn": "OU=UserContainer,DC=test,DC=com",
      "searchStandard": "mail"
   },
  "closeRegister":true
}

PS.

1. LDAP配置項(ldapLogin)

  • enable 表示是否配置 LDAP 登錄,true(支持 LDAP登錄 )/false(不支持LDAP登錄);
  • server LDAP 服務器地址,前面需要加上 ldap:// 前綴,也可以是 ldaps:// 表示是通過 SSL 連接;
  • baseDn LDAP 服務器的登錄用戶名,必須是從根結點到用戶節點的全路徑;
  • bindPassword 登錄該 LDAP 服務器的密碼;
  • searchDn 查詢用戶數據的路徑,類似數據庫中的一張表的地址,注意這里也必須是全路徑;
  • searchStandard 查詢條件,這里是 mail 表示查詢用戶信息是通過郵箱信息來查詢的。注意,該字段信息與LDAP數據庫存儲數據的字段相對應,如果如果存儲用戶郵箱信息的字段是 email, 這里就需要修改成 email.

2. 注冊配置項(closeRegister)

  • 值為true,表示禁止用戶注冊 
  • 值為false(缺損),表示允許注冊

 

 4.3 啟動

 # 切換到部署目錄下 

cd /root/my-yapi

 # 啟動服務 

node vendors/server/app.js

 由於修改了配置,所以直接訪問 http://部署YApi服務器的IP/login。

(ps:沒有進行4.2修改配置的話是訪問http://部署YApi服務器的IP:3000/login)

 

# 配置了LDAP服務的登錄頁面

 

# 沒有配 LDAP服務的登錄頁面

 

# 由於配置了禁止注冊,故tab頁有也不能注冊

 

 


 五、部署Supervisor

 Supervisor是守護進程服務,在沒有守護進程之前存在一些問題:

  1.  應用程序運行在當前終端發起的子shell中,hangup信號中斷后會導致應用退出,我們不可能在長期使用的環境中用一個終端去做長連接。
  2.  當服務器重啟后,還是需要人工連上服務器啟動服務。
  3.  進程出現意外終止,等人為發現再連上去開啟,這樣的反應顯然已經慢了。

 

 5.1 安裝

yum install python-setuptools -y
easy_install supervisor

 

 5.2 修改配置

 # 創建目錄/etc/supervisor 

mkdir /etc/supervisor

 

 # 創建supervisord.conf模板文件 

echo_supervisord_conf > /etc/supervisor/supervisord.conf

 

 # 修改文件supervisord.conf 

vim /etc/supervisor/supervisord.conf

 增加下面的內容,wq保存。 

[include]
files = conf.d/*.conf

(如果服務已啟動,修改配置文件可用“supervisorctl reload”命令來使其生效)

 

 # 創建目錄/etc/supervisor/conf.d/ 

mkdir -p /etc/supervisor/conf.d/

 

 # 修改文件YApi.conf

vim /etc/supervisor/conf.d/YApiGhost.conf

 增加下面的內容,wq保存。

[program: YApiGhost]
command=node vendors/server/app.js ; 運行程序的命令
directory=/root/my-yapi ; 命令執行的目錄
autorestart=true ; 程序意外退出是否自動重啟
stderr_logfile=/var/log/YApiGhost.err.log ; 錯誤日志文件
stdout_logfile=/var/log/YApiGhost.out.log ; 輸出日志文件
environment=ASPNETCORE_ENVIRONMENT=Production ; 進程環境變量
user=root ; 進程執行的用戶身份
stopsignal=INT

 

 5.3 啟動

 # 根據supervisord.conf啟動守護進程

supervisord -c /etc/supervisor/supervisord.conf

 

 # 查看進程

ps -ef | grep YApiGhost

 如果存在YApiGhost 進程則代表運行成功。

 

 5.4 設置為開機啟動

 # 修改文件supervisord.service 

vim /usr/lib/systemd/system/supervisord.service

 添加下面的內容,wq保存。 

[Unit]
Description=Supervisor daemon

[Service]
Type=forking
ExecStart=/usr/bin/supervisord -c /etc/supervisor/supervisord.conf
ExecStop=/usr/bin/supervisorctl shutdown
ExecReload=/usr/bin/supervisorctl reload
KillMode=process
Restart=on-failure
RestartSec=42s

[Install]
WantedBy=multi-user.target

 

 # 開機啟動

systemctl enable supervisord

 


 六、升級YApi

 YApi的升級非常容易,且不會影響用戶的數據,只會更新vendors目錄。

 # 進入服務目錄

cd /root/my-yapi

 

# 查看版本列表

yapi ls

 

# 更新到最新版本

yapi update

 

# yapi也支持升級到指定的版本

yapi update -v {Version}

  


 參考資料:

 1.https://github.com/YMFE/yapi

 2.https://www.cnblogs.com/acewhl/p/6638486.html

 3.https://github.com/nodesource/distributions#rpm

 4.https://www.cnblogs.com/acewhl/p/6638486.html

 5.https://docs.mongodb.com/manual/tutorial/install-mongodb-on-red-hat/

 6.https://yapi.ymfe.org/devops/index.html


免責聲明!

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



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