Coder Social home page Coder Social logo

tug's Introduction

tug

Open-source, cross-platform Pull/Reporting Server for PowerShell DSC

Build status

Status

  • All Pull Mode protocol messages have been implemented, including Reporting
  • Support for Registration Key Authorization has been implemented
  • Several concrete implementations are being made available as pre-built bundles (see below)

Overview

Tug is a collection of components that implement the PowerShell DSC Pull Mode protocol and various supporting behaviors.

Additionally, Tug implements several variations of DSC Pull Servers. Each of these variations will be packaged up into bundles with a curated set of components and configurations that work together well for their target use case. See the list of current and future bundles down below.

For more details about this project, please see the wiki pages.

Pull Server Implementations

In most cases, the intent is for each of the server implementations to be a drop-in replacement for the Classic Pull Server that ships with WMF v5 (i.e. Pull Server v2). Each of these are implemented using ASP.NET Core 1.x

Because these implementations only target support and compatibility with DSC Pull Mode protocol v2, this means nodes must implement the ConfigurationName (not ConfigurationID) style of configuration definitions. (This also means that they should be compatible with the open source LCM client for Linux.)

Bundles

Here we present a list of the current set of bundles that are being worked on.

  • Basic:

    • a simple, strictly file-based implementation that stores all DSC assets in a configurable folder structure
    • current state - works but not yet bundled up into an easily usable form
    • the relatively simple design and implementation details make this a good example of how to wire up a custom DSC server using the components provided by Tug for anyone who would like to build their own
  • EFCore:

    • builds on the Basic implementation but adds an EF Core back-end to store much of the state and meta-data for improved performance, efficiency and easy querying/reporting
    • current state - this is still in the design and prototyping stage, so nothing to show yet
    • this will be implemented in a DB-agnostic manner so that you can plug-in SQL Server, SQLite or whatever flavor of RDBMS you like (maybe even NoSQL when EF Core eventually implements "non-relational databases")
  • PS5:

    • a pull server that is powered by PowerShell v5 -- protocol messagess are implemented as callbacks to cmdlets that can be overridden/extended by users
    • current state - fully working and early access bundle is availble for installation and configuration
    • includes a default set of cmdlets that implement the same behaviors as the Basic implemenation
  • PS6:

    • a pull server that is powered by PowerShell v6
    • the design will mimic that of PS5 but the intention is to make it portable across any platform that supports hosting PS v6, including Windows Nano and Linux
    • current state - some early work has been started but mostly on hold until the hosting story for PS6 gets fleshed out
    • in theory - once PS v6 is stable this implementation would supplant the PSv5 variation
  • FaaS:

    • a pull server that is implemented using the Function-as-a-Service paradigm (aka Serverless)

    • FaaS - AwsLambda:

      • a FaaS pull server for the AWS Lambda platform
      • mimics the Basic server with its simple design that uses S3 for back-end DSC asset storage with some caching for performance improvements
      • current state - core Pull Service features fully working (Reporting not implemented) and can be deployed from code to your own environment
    • FaaS - AzureFunctions:

      • a FaaS pull server built atop Azure Functions
      • this variation is only in the planning stage and there is no implementation yet

tug's People

Contributors

ebekker avatar majst32 avatar concentrateddon avatar

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.