doraemon/README.md

2.2 KiB

doraemon

doraemon is a helper daemon that provides information to network clients based on Ubuntu system, 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.

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