Skip to content
This repository has been archived by the owner on Apr 17, 2023. It is now read-only.

A pure Javascript/Node.js DevOps Data and Event Driven Policy Based Configuration Management tool for the Internet of Everything - Where policies compile to native machine code at runtime.

License

partoutx/partout

Repository files navigation

Partout

The goal is to develop a pure Javascript/Node.js DevOps Data and Event Driven Policy Based Configuration Management tool for the Internet of Everything.

"Partout" /paʀtu/ - is french for "Everywhere"

See also this OpenStack Proof-of-concept deployment using Partout.

Licensed under the GNU General Public License Version 3 (GPLv3 - see COPYING).

Features

  • Integration with operating system provided real-time notification of file system object changes (e.g. linux inotify) to trigger re-scan against policy - real-time repair...
  • Policy files compile to native machine code at runtime (expressed as a DSL in Javascript under Node.js - imagine puppet/chef meets d3.js).

Master Platform

Currently supporting:

  • Linux

Prerequisites

Agent Platforms

Platforms currently being developed and tested on are:

  • Gentoo linux
  • Ubuntu Linux (14.04 & 16.04)
  • CentOS Linux (6 & 7)
  • OpenSuse 13.2
  • Oracle Linux (6 & 7)
  • Microsoft Windows 10
  • Raspberry Pi3 (Raspbian 8 jessie)

(see Agent and Unit-Testing Policies below...)

Prerequisites

  • Node.js v4 or above

Agent and Unit-Testing Policies

Modules

Roles

Roles are very similar in usage to modules, but are coded in much simpler terms utilising the p2 DSL language.

  • See Roles (many more are in the pipeline...)

P2 Language - Policy Files

p2 is a globally instantiated object from the P2 class, which is the agent Domain Specific Declarative Language. This is implemented using chained javascript methods - and therefore policies are compiled to native machine code at run time.

Typically a policy file takes the form of:

p2
.exec('cmd')
.file('file-to-manage', content='whatever {{ Template }}', ...)
.powershell('some powershell')
...
;

(See above Modules for details of the directives)

Anatomy of a Module

Design / Proposal / Brain-Storm Documents


COPYRIGHT

 Partout [Everywhere] - Policy-Based Configuration Management for the
 Data-Driven-Infrastructure.

 Copyright (C) 2015-2017 Graham Lee Bevan <graham.bevan@ntlworld.com>

 This file is part of Partout.

 Partout is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation, either version 3 of the License, or
 (at your option) any later version.

 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU General Public License for more details.

 You should have received a copy of the GNU General Public License
 along with this program.  If not, see <http://www.gnu.org/licenses/>.

About

A pure Javascript/Node.js DevOps Data and Event Driven Policy Based Configuration Management tool for the Internet of Everything - Where policies compile to native machine code at runtime.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published