Helps client to join to domain and maintain itself.
Go to file
Emiliano Vavassori 139c70322c Fixing upstream bug #5. 2018-07-07 20:45:42 +02:00
root Fixing upstream bug #5. 2018-07-07 20:45:42 +02:00
.gitignore FEATURE: git ignore rpm files 2017-10-08 19:43:37 +02:00
LICENSE.txt Relicensing under GPL v3. 2016-04-25 18:33:42 +02:00
README.md Adding a new route for epoptes-srv. 2015-09-11 21:01:50 +02:00
createlinks.pl updated specfile 2016-09-14 21:37:37 +02:00
doraemon.spec Fixing upstream bug #5. 2018-07-07 20:45:42 +02:00

README.md

doraemon

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.

Routes served

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 a host 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 and ansible-pull.
  • /epoptes-srv: replies with the hostname of the local Epoptes controller.