• 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

  • 相关阅读:
    Python学习进程(1)Python简介
    OpenGL学习进程(10)第七课:四边形绘制与动画基础
    OpenGL学习进程(9)在3D空间的绘制实例
    GO语言结构体
    GO指针
    GO值类型与引用类型
    GO函数
    GO map
    GO切片
    GO数组
  • 原文地址:https://www.cnblogs.com/straycats/p/8325695.html
Copyright © 2020-2023  润新知