官方连接

转载连接

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

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 {dailyrotate 30compressdelaycompressdateext
}

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

sudo systemctl enable genieacs-cwmp
sudo systemctl enable genieacs-nbi
sudo systemctl enable genieacs-fs
sudo systemctl enable genieacs-uisudo 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"} ]})

ubuntu 16.04 64位 搭建GenieACS相关推荐

  1. Ubuntu 16.04 64位+Qt 5.7.1+opencv 3.2.0 + opencv_contrib 3.2.0

    Ubuntu 16.04 64位+Qt 5.7.1+opencv 3.2.0 + opencv_contrib 3.2.0 author@jason_ql http://blog.csdn.net/l ...

  2. Ubuntu 16.04 64位安装YouCompleteMe

    之前记录在OneNote上感觉有点乱,而且不适合保存shell,这次重新安装又出问题了,干脆写篇博客记录. 从零开始 1.git(用来下载vim和相关插件) sudo apt-get install ...

  3. Ubuntu 16.04 64位安装arm-linux-gcc交叉编译器以及samba服务器

    交叉编译器是嵌入式开发的必要工具,但是由于目前大多数人使用64位ubuntu,在照着很多教程做的时候,就会失败,失败原因是64位ubuntu需要额外安装32位的兼容包.以arm-linux-gcc-3 ...

  4. Ubuntu 16.04 64位 安装 modelsim

    一.准备 下载modelsim 10.2安装文件及pojie文件 Ubuntu上没有健全的Java环境,先安装jre.jdk sudo apt-get install default-jre sudo ...

  5. Ubuntu 16.04 64位中文版 配置 LAMP+phpMyAdmin PHP(7.0)开发环境

    1.安装 Apache Web服务器. 终端:sudo apt-get install apache2 apache2-doc -y,然后测试是否安装成功. 浏览器地址栏输入:http://local ...

  6. Ubuntu 14.04 64位机上配置Android Studio操作步骤

    Android Studio是一个为Android平台开发程序的集成开发环境.2013年5月16日在Google I/O上发布,可供开发者免费使用.Android Studio基于JetBrains ...

  7. linux运行qsql,c – QSqlDatabase:未在Ubuntu 15.04 64位上加?...

    在Ubuntu 15.04 64位中,我安装了Qt5.6(在线安装程序),在尝试将我的开发环境从Windows 7迁移到Linux时,我面临以下问题: SqlDatabase: QMYSQL driv ...

  8. linux运行qsql,QSqlDatabase:未在Ubuntu 15.04 64位上加​​载QMYSQL驱动程序

    在Ubuntu 15.04 64位中,我安装了Qt5.6(在线安装程序),并且在尝试将开发环境从Windows 7迁移到Linux时,遇到了以下问题: SqlDatabase: QMYSQL driv ...

  9. Go在Ubuntu 14.04 64位上的安装过程

    1. 从 https://golang.org/dl/  或  https://studygolang.com/dl 下载最新的发布版本go1.10即go1.10.linux-amd64.tar.gz ...

  10. 9.解决 WPS 在ubuntu 19.04 64位下提示“系统缺失字体”

    系统版本:ubuntu 19.04 64位 WPS for Linux提示:系统缺失字体symbol.wingdings.wingdings 2.wingdings 3.webding.MTExtra ...

最新文章

  1. ASP.NET 2.0 ajax中gridView的刷新问题!
  2. 回归 好坏 机器学习_机器学习下的多元回归
  3. 常州IBMV3700数据恢复成功
  4. 从易于扩展扩展的角度来设计FizzBuzzWhizz
  5. 0518 Scrum项目5.0
  6. 在c#中实现类似C语言中的memset功能
  7. 【转】Impala导出查询结果到文件
  8. sql用什么替代or
  9. 绕过安卓SSL验证证书的四种方式
  10. java安全编码指南之:敏感类的拷贝
  11. ssl1063-统计数字【哈希表】
  12. 协议编码分析 - ARP协议详解
  13. Java基础学习总结(111)——Java虚拟机JVM总结大全
  14. 召唤新一代超参调优开源新神器,集十大主流模块于一身
  15. oracle 表或视图不存在_sqlalchemy反射不存在主键的表引发的问题
  16. 计算机中汉字字库分为哪两种,常用的汉字字库有GB2312字库和GBK字库两种。 (转)...
  17. python的语法格式
  18. tecplot批量导出图片_科研画图工具Tecplot使用教程
  19. excel查找窗口被拉边上_excel
  20. VS2015远程白屏的解决办法——亲测可用

热门文章

  1. 【bat】bat批处理文件的注释
  2. 两平面平行方向向量关系_空间向量,如果一条直线与一平面平行,那么直线的方向向量与平面的法向量有什么关系??垂直呢?...
  3. 荣耀7i android版本,华为荣耀7i有几个版本?荣耀7i不同版本配置介绍
  4. 阿里云公司简介介绍资料
  5. 【英语魔法俱乐部——读书笔记】 3 高级句型-简化从句倒装句(Reduced Clauses、Inverted Sentences) 【完结】...
  6. 三角网导线平差实例_三角网间接平差示例
  7. c++程序添加资源文件及释放文件
  8. 戴尔服务器显示器接口类型,拒绝凌乱桌面 Type-C接口显示器的魅力
  9. 网络流之dinic算法
  10. Linux和onenote很像的软件,Microsoft OneNote替代方案?