Github related issues with installing GenieACS

Michael Ducharme mducharme at gmail.com
Wed Mar 8 14:58:58 EST 2017


Also, by the way, we used rbenv to install Ruby rather than EPEL, only
because it was an older version of Ruby on EPEL. I was worried about the
potential for GenieACS-GUI code to use features of the newer Ruby, since
more people seem to be using it on Ubuntu vs CentOS, it may not be
compatible with the EPEL version. Unfortunately there seems to be no
official Ruby YUM repo like there is for MongoDB and node.js.

We also needed to use a special command to install mongodb version 3.4.0
from the official mongodb yum repo instead of 3.4.2 because there was a bug
in 3.4.1 and possibly also 3.4.2 that prevented files from being uploaded
in the files tab.

On Wed, Mar 8, 2017 at 11:30 AM, Michael Ducharme <mducharme at gmail.com>
wrote:

> Here is the information on how to set up the mongodb official yum repo:
>
> https://docs.mongodb.com/manual/tutorial/install-mongodb-on-red-hat/
>
> And the node.js official yum repo:
>
> https://nodejs.org/en/download/package-manager/#
> enterprise-linux-and-fedora
>
> On Wed, Mar 8, 2017 at 11:25 AM, Michael Ducharme <mducharme at gmail.com>
> wrote:
>
>> Hi Rene,
>>
>> We use GenieACS on Centos 7. We used the official node.js repository and
>> it worked fine. Also the problem is that you are installing genieacs from
>> npm which is an old version, so there is a mismatch with the gui version.
>> You should use genieacs current version from github rather than installing
>> the older version in the npm repository.
>>
>> This is the procedure we used, if it is helpful. We actually used node.js
>> 7.5.0 and it works fine, but the official recommendation I realize is for
>> 6.x.
>>
>> - Installed mongodb 3.4.0 from mongodb official repo
>>  then start mongodb
>>  systemctl start mongod
>>
>>  had to add a fix to create the pid folder in /var/run otherwise mongod
>> cannot start after reboot since the pid folder disappears in tempfs
>>
>>  - Installed node.js 7.5.0 from node.js official repo
>>
>> useradd genieacs
>> su - genieacs
>>  - Installed and configured rbenv (ruby environment) from source AS
>> GENIEACS USER
>> https://www.digitalocean.com/community/tutorials/how-to-inst
>> all-ruby-on-rails-with-rbenv-on-centos-7
>>      We used that except we installed ruby 2.4.0 instead of 2.2.1, and
>> rails 5.0.1 instead of rails 4.2.0
>>
>> Then, still as the genieacs user:
>>
>> git clone https://github.com/zaidka/genieacs
>>
>> git clone https://github.com/zaidka/genieacs-gui
>>
>> Then, log out of genieacs user (back in as root)
>>
>> npm install -g coffee
>> npm install -g coffee-script
>> npm install -g --unsafe-perm libxmljs
>> npm install -g node-gyp
>> npm install -g redis
>> npm install -g redis-server
>>
>> yum install redis
>>
>> cd /home/genieacs/genieacs
>> npm install -g --unsafe-perm
>>
>> chown -R genieacs:genieacs /usr/lib/node_modules/genieacs
>>
>> mkdir /var/log/genieacs
>> chown genieacs:genieacs /var/log/genieacs
>>
>> mkdir /opt/genieacs-gui
>> chown genieacs:genieacs /opt/genieacs-gui
>>
>> Then go back in as genieacs user:
>>
>> su - genieacs
>> cp -R /home/genieacs-gui /opt/genieacs-gui
>>
>> cd /opt/genieacs-gui
>> cp config/graphs-sample.json.erb config/graphs.json.erb
>> cp config/index_parameters-sample.yml config/index_parameters.yml
>> cp config/summary_parameters-sample.yml config/summary_parameters.yml
>> cp config/parameters_edit-sample.yml config/parameters_edit.yml
>> cp config/parameter_renderers-sample.yml config/parameter_renderers.yml
>> cp config/roles-sample.yml config/roles.yml
>> cp config/users-sample.yml config/users.yml
>>
>> bundle update json
>> bundle exec rake db:migrate RAILS_ENV=development
>> bundle
>>
>> Then, create script to start genieacs (/home/genieacs/start-genieacs.sh):
>>
>>
>> #!/bin/bash
>> /bin/redis-server > /var/log/genieacs/redis-server.log 2>&1 &
>> /bin/genieacs-cwmp > /var/log/genieacs/genieacs-cwmp.log 2>&1 &
>> /bin/genieacs-nbi > /var/log/genieacs/genieacs-nbi.log 2>&1 &
>> /bin/genieacs-fs > /var/log/genieacs/genieacs-fs.log 2>&1 &
>>
>> Then create script to start genieacs-gui (/home/genieacs/start-genieacs-gui/sh):
>>
>>
>> #!/bin/bash
>> cd /opt/genieacs-gui
>> rails server -b 0.0.0.0 > /var/log/genieacs/genieacs-gui.log 2>&1 &
>>
>> to fix error in activesupport (key error must be 32 bytes) do the
>> following:
>>
>> cd */home/genieacs/*.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/
>> gems/activesupport-5.0.0/lib/active_support
>> vi key_generator.rb
>>
>> Make the following changes:
>> line 20:
>> -    def generate_key(salt, key_size = 64)
>> +    def generate_key(salt, key_size=32)
>>
>> line 35 and 36:
>> -    def generate_key(*args)
>> -      @cache_keys[args.join] ||= @key_generator.generate_key(*args)
>> +    def generate_key(salt, key_size=32)
>> +      @cache_keys["#{salt}#{key_size}"] ||=
>> @key_generator.generate_key(salt, key_size)
>>
>> now, for SSL:
>>
>> https://github.com/zaidka/genieacs/wiki/GenieACS-SSL
>>
>> Create certificate and key
>> openssl genrsa 1024 > key.pem
>> openssl req -new -x509 -days 3650 -key key.pem > cert.pem
>>
>> Copy cert.pem and key.pem to /usr/local/node_modules/genieacs/config
>> directory
>>
>> In config directory create symlinks cwmp.crt -> cert.pem and cwmp.key ->
>> key.pem
>>
>> In config directory edit config.json
>>
>> change CWMP_SSL to true
>>
>> Change FS_IP to reachable valid IP address (used for file server)
>>
>> CPE auth:
>>
>> In config folder, cp auth-sample.js auth.js
>> vi auth.js
>> Make up simple username/password in auth.js (ex mycpe/mycpepass)
>>
>> On Wed, Mar 8, 2017 at 7:33 AM, Rene Benner <prophecy67 at gmail.com> wrote:
>>
>>> So.. As per the discussion on Github, I’ve managed to install most of
>>> the GenieACS software now, With dirty hacks here and there that probably
>>> breaks stuff.
>>> What is the exact software I would need for installing it in it’s most
>>> stable shape? Do I ‘REALLY’ need to use NVM to get node 4.0.0 installed?
>>>
>>> As it is, With version v6+ of Node, LibXMLjs seems to break. So
>>> installing it through a local package.json override to a specific version
>>> is a possibility.. Or installing like so:
>>>
>>> #npm install node-gyp -g
>>> #npm install libxmljs at 0.18.0 -g
>>> #npm install bson -g
>>> #npm install mongodb -g
>>> #npm install genieacs -g --ignore-scripts
>>> #cd /usr/lib/node_modules/genieacs
>>> #npm link libxmljs
>>> #npm link bson
>>> #npm link mongodb
>>> #npm install genieacs -g
>>>
>>>
>>> This is in fact rather dirty, As the install scripts first get skipped,
>>> so I can link libxmljs to it’s nested modules (Rendering it away from
>>> source once again)
>>>
>>>
>>> I don’t quite see a neater approach other than handling specific
>>> versions of node.. Does anyone have a proper resolve for this?
>>>
>>>
>>>
>>> FYI, My full installation cycle attached that gets things to work
>>> somewhat. After installation I still suffer from tabs in the webinterface
>>> that are not working as expected (provisions for example. Error below.)
>>>
>>> ```
>>> Pre:
>>> #docker run -p 3000:3000 -it centos /bin/bash
>>>
>>> In container:
>>>
>>> #setenforce 0
>>> #yum -y install epel-release centos-release-scl
>>> #yum-config-manager --enable rhel-server-rhscl-7-rpms
>>> #yum -y install make gcc gcc-c++ epel-release npm redis mongodb-server
>>> git zlib-devel libxml2-devel sqlite-devel sudo rh-ruby22* rh-passenger40
>>> rh-passenger40-ruby22 nginx16
>>> #npm cache clean
>>> #npm install node-gyp -g
>>> #npm install libxmljs at 0.18.0 -g
>>> #npm install bson -g
>>> #npm install mongodb -g
>>> #npm install genieacs -g --ignore-scripts
>>> #cd /usr/lib/node_modules/genieacs
>>> #npm link libxmljs
>>> #npm link bson
>>> #npm link mongodb
>>> #npm install genieacs -g
>>> #cd /opt
>>> #git clone https://github.com/zaidka/genieacs-gui.git
>>> #cd genieacs-gui
>>> #cp config/graphs-sample.json.erb config/graphs.json.erb
>>> #cp config/index_parameters-sample.yml config/index_parameters.yml
>>> #cp config/summary_parameters-sample.yml config/summary_parameters.yml
>>> #cp config/parameters_edit-sample.yml config/parameters_edit.yml
>>> #cp config/parameter_renderers-sample.yml config/parameter_renderers.yml
>>> #cp config/roles-sample.yml config/roles.yml
>>> #cp config/users-sample.yml config/users.yml
>>> #echo 'source scl_source enable rh-ruby22' > /etc/profile.d/ruby23.sh
>>> #echo 'source scl_source enable rh-passenger40' >
>>> /etc/profile.d/passenger40.sh
>>> #echo 'source scl_source enable httpd24' > /etc/profile.d/httpd24.sh
>>> #echo 'source scl_source enable nginx16' > /etc/profile.d/nginx16.sh
>>> #scl enable rh-ruby22 rh-passenger40 bash
>>> #bin/bundle
>>> #bin/rails db:migrate RAILS_ENV=development
>>> #bin/rails server -b 0.0.0.0
>>>
>>> ```
>>>
>>>
>>>
>>> And finally the error I stumble on with the tabs that simply do not work.
>>>
>>>
>>> Started GET "/provisions" for **REDACTED** at 2017-03-08 15:22:14 +0000
>>> Cannot render console from **REDACTED**! Allowed networks: 127.0.0.1,
>>> ::1, 127.0.0.0/127.255.255.255
>>> Processing by ProvisionsController#index as HTML
>>> Completed 500 Internal Server Error in 4ms (ActiveRecord: 0.0ms)
>>>
>>>
>>>
>>> JSON::ParserError (795: unexpected token at 'Not Found'):
>>>
>>> app/controllers/provisions_controller.rb:24:in `find_provisions'
>>> app/controllers/provisions_controller.rb:35:in `block in index'
>>> app/controllers/application_controller.rb:40:in `can?'
>>> app/controllers/provisions_controller.rb:30:in `index'
>>>   Rendering /opt/rh/rh-ruby22/root/usr/local/share/gems/gems/actionpack-
>>> 5.0.0/lib/action_dispatch/middleware/templates/rescues/diagnostics.html.erb
>>> within rescues/layout
>>>   Rendering /opt/rh/rh-ruby22/root/usr/local/share/gems/gems/actionpack-
>>> 5.0.0/lib/action_dispatch/middleware/templates/rescues/_source.html.erb
>>>   Rendered /opt/rh/rh-ruby22/root/usr/local/share/gems/gems/actionpack-
>>> 5.0.0/lib/action_dispatch/middleware/templates/rescues/_source.html.erb
>>> (10.1ms)
>>>   Rendering /opt/rh/rh-ruby22/root/usr/local/share/gems/gems/actionpack-
>>> 5.0.0/lib/action_dispatch/middleware/templates/rescues/_trace.html.erb
>>>   Rendered /opt/rh/rh-ruby22/root/usr/local/share/gems/gems/actionpack-
>>> 5.0.0/lib/action_dispatch/middleware/templates/rescues/_trace.html.erb
>>> (1.9ms)
>>>   Rendering /opt/rh/rh-ruby22/root/usr/local/share/gems/gems/actionpack-
>>> 5.0.0/lib/action_dispatch/middleware/templates/rescues/_requ
>>> est_and_response.html.erb
>>>   Rendered /opt/rh/rh-ruby22/root/usr/local/share/gems/gems/actionpack-
>>> 5.0.0/lib/action_dispatch/middleware/templates/rescues/_request_and_response.html.erb
>>> (0.7ms)
>>>   Rendered /opt/rh/rh-ruby22/root/usr/local/share/gems/gems/actionpack-
>>> 5.0.0/lib/action_dispatch/middleware/templates/rescues/diagnostics.html.erb
>>> within rescues/layout (27.5ms)
>>>
>>>
>>> _______________________________________________
>>> Users mailing list
>>> Users at lists.genieacs.com
>>> http://lists.genieacs.com/mailman/listinfo/users
>>>
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.genieacs.com/pipermail/users/attachments/20170308/5d91bd72/attachment-0001.html>


More information about the Users mailing list