Skip to content

yosshy/bergenholm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

43 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Bergenholm

Bergenholm is a simple kickstart install server like Cobbler or MAAS.

Japanese version of this document is README.ja.md.

Features

  • 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.

Structure

Figure: Structure

Boot Sequence

(IT=Install Target, KS=Kickstart Install Server)

Common part:

  1. IT: powered on (by pressing power button, IPMI, etc)
  2. IT: sends DHCP request (by nic BIOS)
  3. KS: sends DHCP response with next image information (by DHCP server)
  4. IT: sends TFTP request for next image (by nic BIOS)
  5. KS: sends iPXE image via TFTP (by TFTP server)
  6. IT: sends HTTP request for iPXE script (by iPXE)
  7. KS: sends iPXE script via HTTP (by Bergenholm)

Case-by-Case part:

(for installation)

  1. IT: sends HTTP request to fetch boot images (by iPXE)
  2. KS: fetches remote images via web proxy (by Bergenholm)
  3. KS: sends images to IT via HTTP (by Bergenholm)

or (for local boot)

  1. IT: boots from local storage (by iPXE)

or (for registration)

  1. IT: sends HTTP request to register IT itself to Bergenholm (by iPXE)
  2. KS: registers IT (by Bergenholm)
  3. IT: boots from local storage (by iPXE)

Install

See INSTALL.md for details.

Usage

See USAGE.md for details. If you have bergenholmclient installed, you will like USAGE_CLI.md.

Client

APIs

See API.md for details.

FAQs

See FAQ.md.

Notes

License

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.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published