3

I want to install Cosmos. I have installed Apache-Hadoop 2.6 with a single node and my next move was install cosmos-gui.

So I follow the official installation guide - https://github.com/telefonicaid/fiware-cosmos/blob/develop/cosmos-gui/README.md#installation but npm start command doesn't work.

Error:

fs.js:432
  return binding.open(pathModule._makeLong(path), stringToFlags(flags), mode);
                 ^
Error: ENOENT, no such file or directory ''
    at Object.fs.openSync (fs.js:432:18)
    at Object.fs.readFileSync (fs.js:289:15)
    at Object.<anonymous> (/home/cosmos-gui/fiware-cosmos/cosmos-gui/src/app.js:55:13)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Function.Module.runMain (module.js:497:10)
    at startup (node.js:119:16)
    at node.js:906:3

npm ERR! cosmos-gui@0.1.0 start: `node ./src/app.js`
npm ERR! Exit status 8
npm ERR! 
npm ERR! Failed at the cosmos-gui@0.1.0 start script.
npm ERR! This is most likely a problem with the cosmos-gui package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node ./src/app.js
npm ERR! You can get their info via:
npm ERR!     npm owner ls cosmos-gui
npm ERR! There is likely additional logging output above.
npm ERR! System Linux 3.10.0-229.7.2.el7.x86_64
npm ERR! command "/usr/local/bin/node" "/usr/local/bin/npm" "start"
npm ERR! cwd /home/cosmos-gui/fiware-cosmos/cosmos-gui
npm ERR! node -v v0.10.30
npm ERR! npm -v 1.4.21
npm ERR! code ELIFECYCLE
npm ERR! 
npm ERR! Additional logging details can be found in:
npm ERR!     /home/cosmos-gui/fiware-cosmos/cosmos-gui/npm-debug.log
npm ERR! not ok code 0

my conf/cosmos-gui.json

{
  "gui": {
    "port": 443,
    "private_key_file": "",
    "certificate_file": ""
  },
  "clusters": {
    "storage": {
      "endpoint": "127.0.0.1",
      "user": "hadoop",
      "private_key": "12345"
    },
    "computing": {
      "endpoint": "127.0.0.1",
      "user": "hadoop",
      "private_key": "12345"
    }
  },
  "hdfs": {
    "quota": 5,
    "superuser": "hdfs"
  },
  "oauth2": {
    "idmURL": "https://account.lab.fiware.org",
    "client_id": "fromFiLab",
    "client_secret": "fromFiLab",
    "callbackURL": "http://cosmos.lab.fi-ware.org/auth",
    "response_type": "code"
  },
  "mysql": {
    "host": "127.0.0.1",
    "port": 3306,
    "user": "root",
    "password": "12345",
    "database": "cosmos"
  },
  "users_blacklist": [
    "root", "admin", "sysadmin", "localadmin"
  ],
  "log": {
    "file_name": "/var/log/cosmos/cosmos-gui/cosmos-gui.log",
    "date_pattern": ".dd-MM-yyyy"
  }
}
urb
  • 924
  • 1
  • 13
  • 28

1 Answers1

2

As the installation guide says:

  • private_key_file: File name containing the private key used to encrypt the communications with the clients.
  • certificate_file: File name containing the self-signed X509 certificate used by the server to send the clients the public counterpart of the above private key (see Annex B].

So, you have to configure the private_key_file and the certificate_file configuration parameters. You can follow this link in order to know how to create the key and a self-signed certificate.

EDIT 1

Once configured the above files, the user will experience an error related to the binding of a port under 1024 being a non root user.

This can be fixed, of course, by configuring a port over 1024; or setting this capability: setcap 'cap_net_bind_service=+ep' /path/to/program; or doing IP forwarding (preferred method).

Start the GUI in a port over 1024, e.g. 9090, and run this commands in order to configure IP forwarding:

$ iptables -A PREROUTING -t nat -p tcp --dport 443 -j REDIRECT --to-port 9090

Then, you can type https://<host_running_the_gui> in your browser and the traffic will be automatically forwarded to the real listening port (in the example, 9090).

frb
  • 3,738
  • 2
  • 21
  • 51
  • I followed the Annex B: Creating a self-signed certificate and didn't work. I put in pastebin file the report. http://pastebin.com/ih93XeZE – urb Oct 05 '15 at 12:46
  • In this case, I think it is because non root users cannot bind processes to ports under 1024. Please consider using a port over 1024, or changing your settings as described here: http://stackoverflow.com/questions/413807/is-there-a-way-for-non-root-processes-to-bind-to-privileged-ports-1024-on-l – frb Oct 05 '15 at 16:11
  • BTW, this explanation is something to add to the documentation. – frb Oct 05 '15 at 16:11
  • Documentation advises to don't use super users at cosmos installation or at cosmos startup. – urb Oct 05 '15 at 16:54
  • Yes, that's why I'm suggesting to use a port over 1024 or trying changing your settings but always remaining as a non root user. – frb Oct 05 '15 at 16:56
  • Editing the answer, adding a solution about the error when trying to bind a port under 1024 being non root. – frb Oct 08 '15 at 08:18