Giter VIP home page Giter VIP logo

Comments (11)

 avatar commented on August 15, 2024 1

Thanks for your reply!
Is it possible to generate requirements.txt file from your working version? That would help much on those package version issues I guess...

I'm trying to install linetboot on a Ubuntu 22.04.1 LTS using node.js v16.17.0 from distro

Br,

from linetboot.

ohollmen avatar ohollmen commented on August 15, 2024

Hi @sniffski,
Thanks for your report and thanks for using / trying out the Linetboot. Let me elaborate on the parts of output (that you pasted with your issue report):

  • The beginning of output up to point "... Done." is just bunch of informative warnings about linetadm.js not wanting to overwrite any files (that could have been copied before and that could contain your important modifications and changes that would be "goners" if there were overwritten). So this is all informative warnings.
  • The part "To see all files ..." just gives hints to list all files in destination and command to start version controlling your own linetboot config files (by Git, to see how your config evolved along time). This is also just informative message.
  • The last part starting with "[DEP0128] DeprecationWarning: ..." is the probably the scariest part and is coming from node.js interpreter, which always loads the package.json files of the 1) app itself and 2) all the library-dependencies of the app. During loading it runs a validations on the files against reuirements of current node.js / NPM standards. In this case the external (a module not originating from Linetboot) dependency node-getopt seems to have a deprecated (JSON) field in it's package.json module manifest file, which causes node.js to give a very concerning message about it.

I'd be very willing to get rid of nasty message (3rd part), however I doubt the node.js error has any effect on the outcome of the "userconf" operation. The node-getopt used in linetboot seems to have version 0.3.2 and that is also newest version available (newer version might have gotten rid of the "main": "./lib" that node.js complains about.

On the other hand I am not getting the error you are getting with Node.js versions v8.10.0 (Ubuntu distro shipped node.js) or v16.15.1 (Mac OSX, from nodejs.org). What version of Node.js are you running and is it a version from nodejs.org (recommended) or Linux distro itself (e.g. Centos, Fedora, Arch, Ubuntu, Debian ...) ? Form the directory paths in your error messages I can see that you are rrunning on Linux very likely, but if not, please correct my wrong perception. Please let me know your Node.js interpreter origins and version.

If there is a Node.js runtime setting or environment variable (e.g. export NODEJS_NO_WARNINGS=true, note this is not a real setting, just and example of how these things typically get configured), that would be probably the easiest way to get rid of nasty warnings (I'll research this meanwhile).

BR
Olli

from linetboot.

ohollmen avatar ohollmen commented on August 15, 2024

Hi @sniffski,
As Linetboot is developed in Node.js, there is no (Python) requirements.txt. Equivalent of requirements.txt in Node.js is the package.json file(s). Because Web frontend and backend are modularly separated, there are 2 package.json files: package.json on top of git repo / workarea (for the "server side" / backend of the webapp) and web/package.json (for the browser side / frontend of the webapp). In these files look at the JSON "dependencies" section to find the same module dependency defintions similar to requirements.txt. These package.json are working for me in multiple environments, but if you can pinpoint flaws or potential for improvement in these, let me know what caused problems.

Thanks for info on the Distro and Node.js version info (just what I was looking for). I think Node.js v16.17.0 from distro should be good. FYI: The "Prerequisites" section of documentation has instructions (under heading "Installing Node.js and NPM") for using Node.js from nodejs.org (installed under /usr/local/) - but I don't think is needed for your case (just mentioning the possibility).

With all that said, are you stuck at particular step in installation (as described in doc/README.install.m), e.g. Were you able to:

  • complete dependencies installs (npm install and ../node_modules/yarn/bin/yarn install) ?
  • populate configs under ~/.linetboot (I think you were able to complete this despite the warnings you were seeing, ones that led to creation of this ticket)
  • populate (Ansible-style) inventory file (~/.linetboot/hosts)
  • collect / extract Ansible facts (JSON files, Linetboot uses these as information to display on frontend, base ) ?
  • start up linetboot server and see the gui at (e.g.) http:/localhost:3000/web ?

If any of the install steps need clarification / improvement, I'm eager to hear suggestions and improve install guide.
Thanks for your feedback and responses so far !
BR
Olli

from linetboot.

 avatar commented on August 15, 2024

Hi Olli,
Thanks for bringing me down to earth and reminding me that I'm working with nodejs and not python. 🙈
However I walked through the prerequisite steps and hitting the wall with 'npm install' for installing dependencies, see below:

linetboot@linetboot:~/linetboot$ npm install
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '[email protected]',
npm WARN EBADENGINE   required: { node: '0.8.x' },
npm WARN EBADENGINE   current: { node: 'v16.17.0', npm: '8.19.2' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '[email protected]',
npm WARN EBADENGINE   required: { node: '0.8.x' },
npm WARN EBADENGINE   current: { node: 'v16.17.0', npm: '8.19.2' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '[email protected]',
npm WARN EBADENGINE   required: { node: '>= 0.10.0 < 0.11.0' },
npm WARN EBADENGINE   current: { node: 'v16.17.0', npm: '8.19.2' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '[email protected]',
npm WARN EBADENGINE   required: { node: '0.8.x' },
npm WARN EBADENGINE   current: { node: 'v16.17.0', npm: '8.19.2' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '[email protected]',
npm WARN EBADENGINE   required: { node: '0.8.x' },
npm WARN EBADENGINE   current: { node: 'v16.17.0', npm: '8.19.2' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '[email protected]',
npm WARN EBADENGINE   required: { node: '0.8.x' },
npm WARN EBADENGINE   current: { node: 'v16.17.0', npm: '8.19.2' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '[email protected]',
npm WARN EBADENGINE   required: { node: '>= 0.8.0 < 0.11.0' },
npm WARN EBADENGINE   current: { node: 'v16.17.0', npm: '8.19.2' }
npm WARN EBADENGINE }

up to date, audited 718 packages in 3s

24 packages are looking for funding
  run `npm fund` for details

61 vulnerabilities (3 low, 11 moderate, 41 high, 6 critical)

To address issues that do not require attention, run:
  npm audit fix

To address all issues possible (including breaking changes), run:
  npm audit fix --force

Some issues need review, and may require choosing
a different dependency.

Run `npm audit` for details.

Also 'yarn install' failed:

linetboot@linetboot:~/linetboot$ node_modules/yarn/bin/yarn install
yarn install v1.22.1
info No lockfile found.
warning package-lock.json found. Your project contains lock files generated by tools other than Yarn. It is advised not to mix package managers in order to avoid resolution inconsistencies caused by unsynchronized lock files. To clear this warning, remove package-lock.json.
[1/4] Resolving packages...
warning [email protected]: Critical security vulnerability fixed in v0.21.1. For more information, see https://github.com/axios/axios/pull/3410
warning dns > winston > [email protected]: request has been deprecated, see https://github.com/request/request/issues/3142
warning dns > winston > request > [email protected]: Use uuid module instead
warning dns > winston > request > [email protected]: This module moved to @hapi/hawk. Please make sure to switch over as this distribution is no longer supported and may contain bugs and critical security issues.
warning dns > winston > request > [email protected]: Incorrectly published ES6 version into the 0.x branch
warning dns > winston > request > hawk > [email protected]: This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial).
warning dns > winston > request > hawk > [email protected]: This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial).
warning dns > winston > request > hawk > [email protected]: This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial).
warning dns > winston > request > hawk > cryptiles > [email protected]: This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial).
warning dns > winston > request > hawk > boom > [email protected]: This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial).
warning dns > winston > request > hawk > [email protected]: This module moved to @hapi/sntp. Please make sure to switch over as this distribution is no longer supported and may contain bugs and critical security issues.
warning dns > winston > request > hawk > sntp > [email protected]: This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial).
warning dns > tomahawk > socket.io > socket.io-parser > [email protected]: Please use the native JSON object instead of JSON 3
warning dns > tomahawk > socket.io > socket.io-adapter > socket.io-parser > [email protected]: Please use the native JSON object instead of JSON 3
error An unexpected error occurred: "http://github.com/component/emitter/archive/1.0.1.tar.gz: ENOENT: no such file or directory, open '/home/linetboot/.cache/yarn/v6/.tmp/c093b6de586a0ae2ebbab27ba3b833a5/.yarn-tarball.tgz'".
info If you think this is a bug, please open a bug report with the information provided in "/home/linetboot/linetboot/yarn-error.log".
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.

Are you able to help me move forward?

Thanks in advance.

from linetboot.

 avatar commented on August 15, 2024

I did a fresh install on Debian 11 and seems to manage make Linetboot working... I can load the web interface with the login form, however I'm not able to login to the system... looks like it was designed to work only with LDAP.
Decided to install local LDAP, but still unable to login... is it possible to use local account instead?

regards

from linetboot.

ohollmen avatar ohollmen commented on August 15, 2024

Hi @sniffski,
Thanks for your patience - it's great you got linetboot working with debian 11. I'm somewhat puzzled by ubuntu not working, as all my work and home installations on linux have been ubuntu (18.04). However on some installs I' ve been forced to go to node.js from nodejs.org (with new matced nodejs and NPM node package manager), as nodejs techonologies (including npm internet package repo and it's server side interfaces) change fast and distro bases nodejs and npm (esp. npm, the package manager) get out of date very quickly. As a sidenote linetboot on MacOS (10.x, 12.x tried out and proven) works with node.js from nodejs.org.
You are making a good point about LDAP vs. more simple auth. At home I'm using non-LDAP setup, but I have to check my config (I'm writing this from mobile) and I should advice/explain that in documentation too (in that mode username is checked for validity, but any password is accepted, not great, but works around the LDAP requirement).
I should implement a proper simple auth system too (like you are suggesting, with proper crypted passwords, bit like, /etc/shadow or apache htpasswd).
I hope to get something done on that front soon.
BR
Olli

from linetboot.

 avatar commented on August 15, 2024

Hi,
If I'm reading right the 'global.conf.json' LDAP section by default 'disa' is set to 1 which seems like disa is for disabled and set to 1 means default option is with disabled LDAP.
However using tcpdump, I still see some requests sent to LDAP... also I've already put some usernames in the core.authusers array, but using these usernames shows me incorrect credentials.
So I'm stuck at the login form without a way to login properly and see the gems hidden inside.
Any help will be much appreciated, you could even point me to the place in code where the auth process happens so I can try to go around this step and finally get to the inside interface. :)

from linetboot.

 avatar commented on August 15, 2024

Update: when user is not in the list error is 'not authorized', but when I try with user from the list the error is 'invalid credentials'.
So it looks like LDAP currently is not completely disabled.

from linetboot.

 avatar commented on August 15, 2024

Ok I did another fresh install on Ubuntu 18.04 and again trouble with login...
Took a while to analyze the code and it seems there's a missing key in LDAP configuration. After adding 'simu': 1 to LDAP section in global.config.json I was able to successfully login.
Hope this helps anyone struggling the same issues.

from linetboot.

ohollmen avatar ohollmen commented on August 15, 2024

Hi @sniffski,
Indeed "disa": 1, disables LDAP Authentication (just checked my home config too) and luckily I had documented that too (also checked, this would be in doc/README.linetbootconf.md and in web gui "Configuration - Linetboot").
However thanks for spotting the ldap section config var "simu" : 1 , and solving the mystery. This completely went undocumented / unnoticed. In my home setup was using an environment variable LINETBOOT_LDAP_SIMU=1 (maincfg.js effectively turns this to simu: 1). That masked the problem in a nasty way. I have now done a change to remedy this. Just to be fully on top of this (basically the fruits of your discovery):

  • Eliminate LINETBOOT_LDAP_SIMU (unset ...) => Your discovered problem occurs (with tries to contact LDAP)
  • Make a workaround ( for implied simu=1 ) in linetboot.js (~ l. 522) => Works on non-LDAP system
  • I want to do a round of testing on LDAP connected systems to see they work fine with the change before pushing it.

I guess all this explains LDAP packets going out to network with LDAP seemingly disabled (!). I'm sorry about this bug / problem. And luckily you have a ("simu": 1) workaround for non-LDAP system. Thanks for all your smart, hard and extremely persistent troubleshooting work !

Just for (future) reference / openness in code the LDAP authentication related stuff is scattered around following parts:

  • LDAP Connection Setup starts around l. 451 (in linetboot.js)
  • LDAP Login / authentication handler is implemented ~ l. 2361 (also linetboot.js, one call to this per authentication trial in frontend). E.g. the test for ldc.simu was here
  • Misc LDAP helpers are in ldconn.js (Variable ldconnx in linetboot.js is a "handle" to / refers to this module

Hope you are staring to find "the hidden gems" of Linetboot :-) . Feel free to contact me on any issued you see with "Linetboot" (I'm not in a hurry to close this issue ticket).

Seems you got Ubuntu (w. Linetboot) working - was that with node.js (bundled with NPM) from nodejs.org ?

from linetboot.

 avatar commented on August 15, 2024

Thank you for your time to dig into this!
I used the repo node.js, however I had to update as there where some errors with base version.
I think you could close the Issue actually as the discussion actually moved away from the main topic and I think it's not relevant yet.

from linetboot.

Related Issues (1)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.