Progetto Scuola BgLUG - Scenery 1
doraemon
is a helper daemon that provides information to Ubuntu network
clients, to correctly join in a SAMBA 3.0 domain served by NethServer
with custom configurations.
It is a webserver (based on Python Bottle) responding on port 3000 to requests from client during provisioning phase with Ansible.
This repo contains the server itself (doraemon.py
) plus all the other files
needed to package a RPM installable on a NethServer 6.0 server.
It stores the configuration for the hosts inside a SQLite database, plus providing some other information from well-known files inside the filesystem.
Please see doraemon.ini
for configuration of the server.
It is licensed under GPLv2 license.
Thanks to the initial developer, Enrico Bacis.
Actually, the server responds to the following routes:
/mac2hostname
: responds to the client stating the hostname based on MAC address. Actually requires following parameters:mac
: the MAC address for which create the hostname. Optional parameters:base
: basename of the client. Can be any string. Defaulting to "lab".role
: role of the client to be created. Can be any string (default: "client").
/whatsmyhostname
: returns hostname for the client that requested the route. May accept the following optional parameters:base
: basename of the client.role
: role of the client.
/hosts
: returns a dictionary of all hosts registered, each with its role, hostname and MAC address./domain
: returns YAML-formatted output for domain information./mgmtkey
: returns the SSH public key for the management user inside the network./vaultpass
: provides encrypted password for the decription of vaulted files within Ansible configuration repository./ansible_list
: replies with the hostname list to be used with a dynamic inventory script for Ansible, please see this page./ansible_host
: receives ahost
parameter, but returns anyways additional variables based on the MAC address of the client contacting it, to be used with dynamic inventory script for Ansible andansible-pull
./epoptes-srv
: replies with the hostname of the local Epoptes controller.