Coder Social home page Coder Social logo

adaltas / node-nikita Goto Github PK

View Code? Open in Web Editor NEW
61.0 10.0 20.0 39.71 MB

Automation and deployment solution with Node.js

Home Page: https://nikita.js.org

License: MIT License

CoffeeScript 59.05% Shell 0.61% JavaScript 40.34%
automation deployment devops nodejs ssh

node-nikita's Introduction

Build Status

Node.js Nikita

Nikita gathers a set of functions commonly used during system deployment. Documentation is available on the project website.

Main features

  • Consistent Usage
    All the functions share the same API, accepting configuration in a flexible manner validated by a schema. Once you learn the core usage, you only learn the configuration of the actions you wish to execute.
  • Everything is a file
    No agent to install, no database to depend on. Your project is just another Node.js package easily versionned in Git and any SCM, easily integrated with your CI and CD DevOps tools.
  • Idempotence
    Call a function multiple times and expect the same result. You’ll be informed of any modification and can retrieve detailed information.
  • Documentation
    Learn fast. Source code is self-documented with the most common uses enriched by many examples. Don’t forget to look at the tests as well.
  • Flexibility
    Deliberately sacrificing speed for a maximum of strength, ease of use, and flexibility. The simple API built on a plugin architecture allows us to constantly add new functionalities without affecting the API.
  • Composition
    Built from small and reusable actions imbricated into a complex system. It follows the Unix philosophy of building small single-building blocks with a clear API.
  • SSH support
    All the functions run transparently over SSH. Look at the tests, they are all executed both locally and remotely.
  • Reporting
    Advanced reports can be obtained by providing a log function, listening to stdout and stderr streams, generating diffs and backups.
  • Reliability
    Feel confident. Modules are used in production for years and the code is enforced by an extensive test coverage.
  • Support
    The package is open sourced with one of the least restrictive licenses. Involve yourself and contribute to open source development by sending pull requests or requesting commercial support offered by Adaltas.

Installation

npm install nikita

Developer information

Refer to the documentation to learn more and get involved:

node-nikita's People

Contributors

ahpanna avatar alexhff avatar blakmatrix avatar cberez avatar charlesb avatar danieljohnharty avatar fbraza avatar ferdidb avatar gboutry avatar iderr avatar kellian-cottart avatar leopaul36 avatar lucasbak avatar noomly avatar nuttymoon avatar pierrotws avatar rreivax avatar sergkudinov avatar skover avatar tobias-chc avatar wdavidw avatar win32gg avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

node-nikita's Issues

system_limits too high

system_limits support parameter nofile: true, meaning that mecano should calculate the max value possible from kernel limit.

Doing that, a user can starve the system and if other users are logged (which is generally the case...), the system will not authorize to open a new session.

MUST BE RESOLVED QUICKLY

add grep options on @execute

We often use bash grep to check output of a command, and return 1 (mecano fail) if not found.
Works great, but we loose the output of the firt command.

@execute
  cmd: 'ps aux | grep toto'
, (err, out, err) -> //out contains toto if found, else is empty

Solution could be:

@execute
  cmd: 'ps aux'
  grep: 'toto'
, (err, out, err) -> //out contains ps aux output

Also , would support regexp :

@execute
  cmd: 'ps aux'
  grep: /t.to/
, (err, out, err) -> //out contains ps aux output

mecano.link fails if dest is a broken symlink

mecano is able to replace a symlink (if the source changes) only if the link is valid.
The problem come from the fs.exists in sym_exists, which return false if symlink exists but is broken.
fs.exists is now deprecated, need to actualize ssh2-fs to use fs.access (with fs.F_OK flag ?) instead.

wait_connect: Channel Open Failure

wait_connect results in Error:

{ [Error: (SSH) Channel open failure: open failed] reason: 'ADMINISTRATIVELY_PROHIBITED', lang: '' }

A workaround is to force ssh to null in mecano/wait/connect
116 child.execute
117 ssh: null

krb5 policies

add mecano actions to create/delete/modify krb5 policies

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.