一、環境要求:
nodejs 版本在7.6以上
mongodb版本在2.6以上
注:無外網需要配置代理 vi /etc/profile
http_proxy=http://username:password@yourproxy:8080/
https_proxy=https://username:password@yourproxy:8080/
export http_proxy
export https_proxy
二、安裝nodejs (版本8.17.0)
方式一:
2.1.查看是否安裝gcc-c++
yum list installed | grep gcc-c++
2.2.下載nodejs
wget https://nodejs.org/dist/v8.17.0/node-v8.17.0.tar.gz
2.3.解壓並進入目錄:
tar zxvf node-v8.17.0.tar.gz
cd node-v8.17.0
2.4.配置:
./configure
2.5.編譯及安裝:
make & make install
2.6.檢查
node --version
npm --version
方式二:
curl -sL https://rpm.nodesource.com/setup_8.x | bash -
yum install nodejs
三、安裝mongodb (版本4.2)
3.1.設置yum源
vim /etc/yum.repos.d/mongodb-org-4.2.repo
[mongodb-org-4.2]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.2/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.2.asc
3.2.安裝
yum install mongodb-org
3.3.啟動服務
systemctl enable mongodb
systemctl start mongodb
如果在使用過程中遇到mongod服務器無法啟動處理:
報錯信息:Process: 3831 ExecStart=/usr/bin/mongod $OPTIONS (code=exited, status=14)
解决方案:修改/tmp/*.sock用戶群組
chown mongod:mongod mongodb-27017.sock
四、部署YAPI
4.1.無外網需要配置NPM代理(有外網可忽略)
npm config set proxy http://username:password@yourproxy:8080/
npm config set https-proxy http://username:password@yourproxy:8080/
註:查看npm config list
4.2.部署分可視化部署和命令部署,由於網絡問題本實例採用命令部署
4.2.1.方法一:可視化部署(/usr/local/bin/yapi)
npm install -g yapi-cli --registry https://registry.npm.taobao.org
啟動YAPI:yapi server
訪問瀏覽器進行部署
4.2.2.方法二:命令部署
參考:https://hellosean1025.github.io/yapi/devops/index.html / https://github.com/YMFE/yapi
mkdir /var/www/html/yapi //建立目錄
cd /var/www/html/yapi //切換目錄
wget https://github.com/YMFE/yapi/archive/v1.8.5.tar.gz //下載yapi
tar -zxvf v1.8.5.tar.gz
mv yapi-1.8.5 vendors
cp vendors/config_example.json ./config.json //复制完成后请修改相关配置
cd vendors
npm install --production --registry https://registry.npm.taobao.org
npm run install-server //初始化數據庫索引與管理賬號,管理員賬號可在config.json配置
node server/app.js //启动服务器后,请访问 127.0.0.1:{config.json配置的端口},初次运行会有个编译的过程,请耐心等候
註: 初始化管理员账号成功,账号名:"[email protected]",密码:"ymfe.org"
4.2.3.基於AD賬號登錄設置:
vim /var/www/html/yapi/config.json
"ldapLogin": {
"enable": true,
"server": "ldap://ipaddr:389",
"baseDn": "CN=test,ou=users,DC=test,DC=com",LDAP服務器登錄用戶名
"bindPassword": "123456", LADP服務器登錄用戶名密碼
"searchDn": "DC=test,DC=com",
"searchStandard": "&(objectClass=user)(SamAccountName=%s)" //此查詢條件是AD SamAccountName,如果查詢條件是郵箱:"mail"
},
"closeRegister":true //用戶註冊禁用,開啟false
5、部署Supervisor
部署原由:
5.1.安裝
yum install supervisor / easy_insatll supervisor //系統環境python3.6和相應組件
已安裝組件信息如下:
supervisord(server) :負責管理子進程,響應客戶端命令及日誌輸出等
supervisorctl(client):命令行客戶端,用戶通過他與不同supervisord進程聯繫,獲取子進程的狀態等。
echo_supervisord_conf:生成初始配置文件程序,見5.2
web server :界面管理進程
5.2.創建目錄/etc/supervisor和supervisord.conf 模板文件
mkdir /etc/supervisor
echo_supervisord_conf > /etc/supervisor/supervisord.conf
5.3.修改supervisord.conf並加入內容
vim /etc/supervisor/supervisord.conf
[include]
files = conf.d/*.conf
5.4.創建目錄/etc/supervisor/conf.d/
mkdir -p /etc/supervisor/conf.d/
5.5.修改文件並增加內容
vim /etc/supervisor/conf.d/YApiGhost.conf
[program: YApiGhost]
command=node vendors/server/app.js ; 运行程序的命令
directory=/root/my-yapi ; 命令执行的目录
autostart=true ;在supervisord啟動的時候自動啟動
autorestart=true ; 程序意外退出是否自动重启
startretries=3 ;啟動失敗自動重試次數,默認是3
stderr_logfile=/var/log/YApiGhost.err.log ; 错误日志文件
stdout_logfile=/var/log/YApiGhost.out.log ; 输出日志文件
environment=ASPNETCORE_ENVIRONMENT=Production ; 进程环境变量
user=root ; 进程执行的用户身份
stopsignal=INT
5.6.啟動,如果服務已啟動,修改配置文件可用“supervisorctl reload”
啟動守護進程:
supervisord -c /etc/supervisor/supervisord.conf
查看進程:
ps -ef | grep YApiGhost
5.7.設置開機啟動
修改文件supervisord.service&添加內容
vim /usr/lib/systemd/system/supervisord.service
[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
5.8.Web 界面管理
vim /etc/supervisor/supervisord.conf
注:不需要登錄與密碼,請注釋掉
打開瀏覽器如下圖: