Skip to content
Avahi-based discovery service for Dynamic Disnix
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
scripts
src
AUTHORS
COPYING
ChangeLog
Makefile.am
NEWS
README.md
bootstrap
configure.ac
dydisnix-avahi-module.nix
release.nix
version

README.md

Dynamic Disnix Avahi publisher

This package contains a simple prototype service and client to automatically discover machine configurations and to generate Disnix infrastructure models from them.

Moreover, it can be used to automatically notify clients in case of configuration changes so the a system can be automatically redeployed (by using components of the Dynamic Disnix toolset), if needed.

It is based on the protocols implemented by the Avahi package (mDNS and DNS-SD).

Prerequisites

In order to build Dynamic Disnix Avahi publisher from source code, the following packages are required:

Installation

Dynamic Disnix is a typical autotools based package which can be compiled and installed by running the following commands in a shell session:

$ ./configure
$ make
$ make install

Usage

This package contains both a server and a client.

Running the server

To make a target machine in the network discoverable, you should run the server on it:

$ dydisnix-publishinfra-avahi

The above command publishes its properties through mDNS. It uses the output of the following Dysnomia command to retrieve the machines properties:

$ dysnomia-containers --capture-infra

Consult the Dysnomia documentation for more information on how to configure machine and container properties.

Running the client

To automatically discover the configurations of all machines (having the server component installed) and generate an infrastructure model from it, run:

$ dydisnix-geninfra-avahi
{
  "machine1" = {
    properties."hostname"="machine1";
    properties."mem"="377648";
    properties."supportedTypes"=[ "process" "wrapper" ];
  };
  "machine2" = {
    properties."hostname"="machine2";
    properties."mem"="377648";
    properties."supportedTypes"=[ "process" "tomcat-webapplication" "wrapper" ];
  };
}

License

Disnix is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation either version 2.1 of the License, or (at your option) any later version. Disnix 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 Lesser General Public License for more details.

You can’t perform that action at this time.