===============================================html
2018/6/5_第2次修改 ccb_warlocknode
更新說明:python
2018/6/5:在4.2中增長LDAP、註冊的配置信息;linux
增長了"6、升級YApi"的內容;git
===============================================github
YApi是去哪兒移動架構組開源的API管理系統,以前使用碼雲上開源的CrapApi,可是因爲原做者好久沒有更新維護且聽公司開發人員說YApi功能更爲強大,故進行部署。mongodb
官方文檔:https://yapi.ymfe.org/documents/index.htmlshell
1、準備工做數據庫
1.1 環境npm
操做系統:centos7(CentOS-7-x86_64-Minimal-1708)
環境要求:
2、部署nodejs
部署nodejs儘量選擇偶數版本,由於偶數版本官方有較長的維護時間,故此次選擇8.x。
# 獲取資源
curl -sL https://rpm.nodesource.com/setup_8.x | bash -
# 安裝
yum install -y nodejs
# 查看node版本
node -v
# 查看npm版本
npm -v
3、部署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
4、部署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)
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頁有也不能註冊
5、部署Supervisor
Supervisor是守護進程服務,在沒有守護進程以前存在一些問題:
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
6、升級YApi
YApi的升級很是容易,且不會影響用戶的數據,只會更新vendors目錄。
# 進入服務目錄
cd /root/my-yapi
# 查看版本列表
yapi ls
# 更新到最新版本
yapi update
# yapi也支持升級到指定的版本
yapi update -v {Version}
參考資料:
1.https://github.com/YMFE/yapi
2.http://www.javashuo.com/article/p-ebadlidn-w.html
3.https://github.com/nodesource/distributions#rpm
4.http://www.javashuo.com/article/p-ebadlidn-w.html
5.https://docs.mongodb.com/manual/tutorial/install-mongodb-on-red-hat/