按照如下命令输入(均是普通用户操作)
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"} ]})