Skip to content
/ doraemon Public
forked from bglug-it/doraemon

Helps client to join to domain and maintain itself

License

Notifications You must be signed in to change notification settings

paspo/doraemon

 
 

Repository files navigation

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.

About

Helps client to join to domain and maintain itself

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 82.7%
  • Shell 17.3%