Helps client to join to domain and maintain itself.
Go to file
Emiliano Vavassori 1320b33bc6 Corrected spec for latest version. 2015-09-07 21:58:52 +02:00
defaults Import iniziale. Mergiato mac2hostname con ansible-helper. 2015-07-13 22:43:50 +02:00
.gitignore Import iniziale. Mergiato mac2hostname con ansible-helper. 2015-07-13 22:43:50 +02:00
LICENSE Import iniziale. Mergiato mac2hostname con ansible-helper. 2015-07-13 22:43:50 +02:00
README.md Changes to the readme. 2015-07-21 21:47:43 +02:00
doraemon.ini Prima versione correttamente funzionante. 2015-07-13 23:32:25 +02:00
doraemon.logrotate Aggiunto file di logrotation. 2015-07-15 00:13:41 +02:00
doraemon.py Correcting role to be the correct one. 2015-09-07 21:56:52 +02:00
doraemon.spec Corrected spec for latest version. 2015-09-07 21:58:52 +02:00
initrd Import iniziale. Mergiato mac2hostname con ansible-helper. 2015-07-13 22:43:50 +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.

TODO List

  • Implement methods for dynamic inventory for Ansible
  • Verify RPM packaging to automatically start daemon as soon as it is installed
  • Verify NethServer script for runlevel-adjust