ubuntu 16.04 64位 搭建GenieACS

 官方连接

转载连接

按照如下命令输入(均是普通用户操作)

1,安装Node.js

sudo apt update
sudo apt-get update 
sudo apt-get upgrade
curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
sudo apt-get install -y nodejs

其它环境安装

sudo apt-get install gcc g++ make
curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | gpg --dearmor | sudo tee /usr/share/keyrings/yarnkey.gpg >/dev/null
echo "deb [signed-by=/usr/share/keyrings/yarnkey.gpg] https://dl.yarnpkg.com/debian stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
sudo apt-get update && sudo apt-get install yarn

2、安装MongoDB

sudo apt-get update 
sudo apt-get upgrade
wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list
sudo apt-get update
sudo apt-get install -y mongodb-org
echo "mongodb-org hold" | sudo dpkg --set-selections
echo "mongodb-org-server hold" | sudo dpkg --set-selections
echo "mongodb-org-shell hold" | sudo dpkg --set-selections
echo "mongodb-org-mongos hold" | sudo dpkg --set-selections
echo "mongodb-org-tools hold" | sudo dpkg --set-selections
sudo systemctl start mongod
sudo systemctl daemon-reload
sudo systemctl status mongod
sudo systemctl enable mongod   //执行此命令后,终端界面如果无法输入。不用管,直接新开一个终端。

3,安装Genieacs

sudo npm install -g genieacs@1.2.8    //留意最新版本号
sudo useradd --system --no-create-home --user-group genieacs
sudo mkdir /opt/genieacs
sudo mkdir /opt/genieacs/ext
sudo chown genieacs:genieacs /opt/genieacs/ext

创建genieacs.env配置文件

sudo gedit /opt/genieacs/genieacs.env

写入下面内容

GENIEACS_CWMP_ACCESS_LOG_FILE=/var/log/genieacs/genieacs-cwmp-access.log
GENIEACS_NBI_ACCESS_LOG_FILE=/var/log/genieacs/genieacs-nbi-access.log
GENIEACS_FS_ACCESS_LOG_FILE=/var/log/genieacs/genieacs-fs-access.log
GENIEACS_UI_ACCESS_LOG_FILE=/var/log/genieacs/genieacs-ui-access.log
GENIEACS_DEBUG_FILE=/var/log/genieacs/genieacs-debug.yaml
NODE_OPTIONS=--enable-source-maps
GENIEACS_EXT_DIR=/opt/genieacs/ext
GENIEACS_UI_JWT_SECRET=secret

genieacs.env创建完成后,继续执行下列命令

sudo chown genieacs:genieacs /opt/genieacs/genieacs.env
sudo chmod 600 /opt/genieacs/genieacs.env
sudo mkdir /var/log/genieacs
sudo chown genieacs:genieacs /var/log/genieacs

切换到此目录下(/etc/systemd/system/)

cd /etc/systemd/system/

新建4个文件并写入相应的内容

文件1

 sudo gedit genieacs-cwmp.service

以下内容写入到genieacs-cwmp.service

[Unit]
Description=GenieACS CWMP
After=network.target

[Service]
User=genieacs
EnvironmentFile=/opt/genieacs/genieacs.env
ExecStart=/usr/bin/genieacs-cwmp

[Install]
WantedBy=default.target

文件2

 sudo gedit genieacs-nbi.service

以下内容写入到genieacs-nbi.service

[Unit]
Description=GenieACS NBI
After=network.target

[Service]
User=genieacs
EnvironmentFile=/opt/genieacs/genieacs.env
ExecStart=/usr/bin/genieacs-nbi

[Install]
WantedBy=default.target

文件3

 sudo gedit genieacs-fs.service

以下内容写入到genieacs-fs.service

[Unit]
Description=GenieACS FS
After=network.target

[Service]
User=genieacs
EnvironmentFile=/opt/genieacs/genieacs.env
ExecStart=/usr/bin/genieacs-fs

[Install]
WantedBy=default.target

文件4

sudo gedit genieacs-ui.service

以下内容写入到genieacs-ui.service

[Unit]
Description=GenieACS UI
After=network.target

[Service]
User=genieacs
EnvironmentFile=/opt/genieacs/genieacs.env
ExecStart=/usr/bin/genieacs-ui

[Install]
WantedBy=default.target

新建文件/etc/logrotate.d/genieacs

sudo gedit /etc/logrotate.d/genieacs

内容如下

/var/log/genieacs/*.log /var/log/genieacs/*.yaml {
    daily
    rotate 30
    compress
    delaycompress
    dateext
}

启动服务。设置开机自动启

sudo systemctl enable genieacs-cwmp
sudo systemctl enable genieacs-nbi
sudo systemctl enable genieacs-fs
sudo systemctl enable genieacs-ui

sudo systemctl start genieacs-cwmp
sudo systemctl start genieacs-nbi
sudo systemctl start genieacs-fs
sudo systemctl start genieacs-ui

以下命令官方说明中有提及,但实际貌似不用输入

sudo systemctl status genieacs-cwmp
sudo systemctl status genieacs-nbi
sudo systemctl status genieacs-fs
sudo systemctl status genieacs-ui

现在基本需要的安装已经OK。下面对GenieACS 简单说明。

web登陆:IP:3000

Genieacs-ui              基于Web的用户界面。默认情况下,它在端口3000上侦听。

genieacs-cwmp        这是CPE将与之通信的服务。默认情况下,它在端口7547上侦听。相                                     应地在设备中配置ACS URL。

Genieacs-nbi            这是北向接口模块。默认情况下,它在端口7557上公开REST API。

                                 仅当您具有使用此API与GenieACS集成的外部系统时,才需要此接口。

genieacs-fs               文件服务器,CPE将从该文件服务器下载固件映像等

genieacs-sim             作为虚拟TR-069仿真器

通过【IP:3000】访问服务器管理页面

cpe连接url为【IP:7547】

acs认证设置

Key:cwmp.auth
Value:AUTH("cwmp","cwmp")

cpe认证设置

Key:cwmp.connectionRequestAuth
Value:AUTH("cwmpd","cwmpd")

Online设置

可以设置配置cwmp.deviceOnlineThreshold来调整超时前等待的时间。默认为 4000(毫秒)

Key:cwmp.deviceOnlineThreshold
Value:10000

会话超时设置

可以配置cwmp.deviceOnlineThreshold来调整会话超时时间

Key:cwmp.seesionTimeout
Value:"10000"

其他:可以genieacs.com搜索对应ACS产生的异常

 1:任务队列数,需要调用操作2才会将队列中任务发送出去

2:Commit发送数据,将1中Queued全部整合成报文在一个session中发送出去

3:搜索栏,可通过节点名称过滤节点

4:部分PRC操作

  • reboot:重启

  • reset:恢复出厂设置

  • Push file 上传文件 如固件升级

  • Delete:删除当前设备

5:Log,能查看当前设备的错误返回情况

6:部分RPC操作,操作后将会放入Queued队列中

7、12:刷新节点,通过节点后带有数字的为object,详细可查看协议或规格

  • 7为param,刷新7时,会调用getParamValue刷新当前值

  • 12位object,刷新12时,会先调用getParamName获取PortMapping下所有的{i}节点名称,如PortMapping.1. PortMapping.2. ……PortMapping.n.等,当前仅存在PortMapping.1. 然后再调用getParamValue获取其子节点值

详细可通过wireshark抓包查看

8:当param中属性rw=1,可写入时,ACS会生成此图标,可通过调用setParamName设置CPE参数值

9:当object中属性rw=1,可写入时,ACS会生成此图标,可通过调用addObject添加CPE object实例值

10:当object中属性rw=1,可写入时,ACS会生成此图标,可通过调用delObject删除CPE object实例值

11:清空队列Queued

genieacs配置更改

配置为systemctl edit --force --full genieacs-*中

EnvironmentFile=/opt/genieacs/genieacs.env

配置中参数设置参考Environment Variables — GenieACS Documentation 1.2.8 documentation

转载其它配置:

环境变量

可以通过以下环境变量来配置GenieACS服务:

注意

所有GenieACS环境变量必须以开头GENIEACS_。

数据库连接参数:MONGODB_CONNECTION_URL

MongoDB连接字符串。

默认: mongodb://127.0.0.1/genieacs

EXT_DIR

从中查找扩展脚本的目录。

默认: <installation dir>/config/ext

EXT_TIMEOUT

超时(以毫秒为单位),允许对扩展的调用返回响应。

默认: 3000

DEBUG_FILE

转储CPE调试日志的文件。

默认值:未设置

DEBUG_FORMAT

调试日志格式。有效值为'yaml'和'json'。

默认: yaml

LOG_FORMAT

用于日志的格式条目中CWMP_LOG_FILE,NBI_LOG_FILE, FS_LOG_FILE,和UI_LOG_FILE。可能的值为simple和 json。

默认: simple

ACCESS_LOG_FORMAT

用于日志的格式条目中CWMP_ACCESS_LOG_FILE, NBI_ACCESS_LOG_FILE,FS_ACCESS_LOG_FILE,和UI_ACCESS_LOG_FILE。可能的值为simple和json。

默认: simple

CWMP_WORKER_PROCESSES

为genieacs-cwmp生成的辅助进程数。值0表示有可用的CPU内核。

默认: 0

CWMP_PORT

genieacs-cwmp侦听的TCP端口。

默认: 7547

CWMP_INTERFACE

genieacs-cwmp绑定到的网络接口。

默认: 0.0.0.0

CWMP_SSL_CERT

证书文件的路径。如果省略,将使用非安全的HTTP。

默认值:未设置

CWMP_SSL_KEY

证书密钥文件的路径。如果省略,将使用非安全的HTTP。

默认值:未设置

CWMP_LOG_FILE

记录genieacs-cwmp与进程相关的事件的文件。如果省略,日志将转到stderr。

默认值:未设置

CWMP_ACCESS_LOG_FILE

用于记录genieacs-cwmp传入请求的文件。如果省略,日志将转到标准输出。

默认值:unest

NBI_WORKER_PROCESSES

为genieacs-nbi生成的工作进程数。值0表示有可用的CPU内核。

默认: 0

NBI_PORT

genieacs-nbi侦听的TCP端口。

默认: 7557

NBI_INTERFACE

genieacs-nbi绑定到的网络接口。

默认: 0.0.0.0

NBI_SSL_CERT

证书文件的路径。如果省略,将使用非安全的HTTP。

默认值:unest

NBI_SSL_KEY

证书密钥文件的路径。如果省略,将使用非安全的HTTP。

默认值:未设置

NBI_LOG_FILE

记录有关genieacs-nbi的进程相关事件的文件。如果省略,日志将转到stderr。

默认值:未设置

NBI_ACCESS_LOG_FILE

用于记录对genieacs-nbi的传入请求的文件。如果省略,日志将转到标准输出。

默认值:未设置

FS_WORKER_PROCESSES

为genieacs-fs生成的工作进程数。值0表示有可用的CPU内核。

默认: 0

FS_PORT

genieacs-fs侦听的TCP端口。

默认: 7567

FS_INTERFACE

genieacs-fs绑定到的网络接口。

默认: 0.0.0.0

FS_SSL_CERT

证书文件的路径。如果省略,将使用非安全的HTTP。

默认值:未设置

FS_SSL_KEY

证书密钥文件的路径。如果省略,将使用非安全的HTTP。

默认值:未设置

FS_LOG_FILE

记录genieacs-fs的进程相关事件的文件。如果省略,日志将转到stderr。

默认值:未设置

FS_ACCESS_LOG_FILE

用于记录对genieacs-fs的传入请求的文件。如果省略,日志将转到标准输出。

默认值:未设置

FS_URL_PREFIX

生成TR-069下载请求的文件URL时使用的URL前缀(例如' https://example.com:7657/ ')。如果genieacs-fs和genieacs-cwmp位于代理之后或在其他服务器上运行,请设置此选项。

默认值:根据ACS URL的主机名,FS_PORT配置以及是否为genieacs-fs启用SSL,自动生成。

UI_WORKER_PROCESSES

为genieacs-ui生成的工作进程数。值0表示有可用的CPU内核。

默认: 0

UI_PORT

genieacs-ui侦听的TCP端口。

默认: 3000

UI_INTERFACE

genieacs-ui绑定到的网络接口。

默认: 0.0.0.0

UI_SSL_CERT

证书文件的路径。如果省略,将使用非安全的HTTP。

默认值:未设置

UI_SSL_KEY

证书密钥文件的路径。如果省略,将使用非安全的HTTP。

默认值:未设置

UI_LOG_FILE

记录genieacs-ui的与进程相关的事件的文件。如果省略,日志将转到stderr。

默认值:未设置

UI_ACCESS_LOG_FILE

用于记录genieacs-ui传入请求的文件。如果省略,日志将转到标准输出。

默认值:未设置

UI_JWT_SECRET

用于对存储在浏览器cookie中的JWT令牌进行签名的密钥。该字符串的最大长度为64个字符。

默认值:未设置

MongoDB数据库配置:转载

启动文件配置:sudo gedit /etc/systemd/system/mongodb.service

[Unit]
Description=High-performance, schema-free document-oriented database
After=network.target
 
[Service]
User=mongodb
ExecStart=/usr/bin/mongod --quiet --config /etc/mongod.conf
//以下是开户登陆验证:
//ExecStart=/usr/bin/mongod --auth --config /etc/mongod.conf
 
[Install]
WantedBy=multi-user.target

开启远程访问:

sudo gedit /etc/mongod.conf

找到并把 bind_ip=127.0.0.1 这一行注释掉或者是修改成 bind_ip=0.0.0.0,最好是直接注释掉

连接mongo数据库,终端输入:mongo

添加用户:db.createUser({user: "admin", pwd: "123456",roles: [ { role: "root", db: "admin"} ]})

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值