Bergenholm is a simple kickstart install server like Cobbler or MAAS.
Japanese version of this document is README.ja.md.
-
Using iPXE efficiently; iPXE is a PXE boot loader for x86/ x86-64. iPXE has many features. Bergenholm uses some of them like HTTP downloading, iPXE scripting and per-host parameters.
-
No Repository Inside; while Cobbler and MAAS have local repositories they manage, Bergenholm doesn't need them. Of course, you can build local repositories manually and make Bergenholm using them.
-
REST APIs; Bergenholm has RESTful APIs for templates, hosts, groups and iPXE. No GUI/WebUI now.
-
Parameter Inheritance; Bergenholm can handle JSON-style paraeters for host and group. host parameters can inherit group(s) parameters and group parameters can do too. No restriction for group definition.
-
Jinja2 Templating; Bergenholm can handle Jinja2-style template files and parameters. You can use templates with host/group parameters for Kickstart/Preseed files, iPXE scripts, and so on. Additionally, you can use parameters in parameters. No restriction for parameter usage except reserved parameters .
-
Streaming Remote Images; Bergenholm can fetch kernel/initrd images on remote sites and fowarding (streaming) them to installing targets.
-
Power Management; Bergenholm can retrieve and change power status of installing targets. Supported power type are IPMI, VMware and Libvirt.
-
Written in Flask-PyMongo and Flask-Action; So backend database is MongoDB. You can develop Bergenholm with Python.
(IT=Install Target, KS=Kickstart Install Server)
Common part:
- IT: powered on (by pressing power button, IPMI, etc)
- IT: sends DHCP request (by nic BIOS)
- KS: sends DHCP response with next image information (by DHCP server)
- IT: sends TFTP request for next image (by nic BIOS)
- KS: sends iPXE image via TFTP (by TFTP server)
- IT: sends HTTP request for iPXE script (by iPXE)
- KS: sends iPXE script via HTTP (by Bergenholm)
Case-by-Case part:
(for installation)
- IT: sends HTTP request to fetch boot images (by iPXE)
- KS: fetches remote images via web proxy (by Bergenholm)
- KS: sends images to IT via HTTP (by Bergenholm)
or (for local boot)
- IT: boots from local storage (by iPXE)
or (for registration)
- IT: sends HTTP request to register IT itself to Bergenholm (by iPXE)
- KS: registers IT (by Bergenholm)
- IT: boots from local storage (by iPXE)
See INSTALL.md for details.
See USAGE.md for details. If you have bergenholmclient installed, you will like USAGE_CLI.md.
See API.md for details.
See FAQ.md.
- ubuntu1404.preseed is based on https://github.com/wnoguchi/ubuntu_documents/tree/master/preseed
- centos6.kickstart is based on https://github.com/CentOS/Community-Kickstarts
Apache License ver.2.0. See LICENSE for details.
Note: dhcp_server.py and centos6.kickstart are under GNU GPL ver.2. ubuntu1404.preseed has no license displayed.