Sabakan is an integration service to automate bare-metal server management. It uses etcd as a backend datastore for strong consistency and high availability.
Project Status: Initial development.
-
High availability
Thanks to etcd, sabakan can run multiple instances while maintaining strong consistency. For instance, DHCP lease information are shared among sabakan instances to avoid conflicts.
-
Machine inventory / IP address management (IPAM)
Machines in a data center can be registered with sabakan's inventory. In addition, sabakan assigns IP addresses automatically to machines.
-
DHCP service
Sabakan provides DHCP service that supports UEFI HTTP Boot and iPXE HTTP Boot.
-
HTTP service
Sabakan serves OS images to machines via HTTP.
-
Distributed asset management
In order to help initialization of client servers, sabakan can work as a file server from which clients can download assets via HTTP. Assets are automatically synchronized between sabakan servers.
-
Encryption key store
Sabakan provides REST API to store and retrieve encryption keys to help automated disk encryption/decryption.
-
Life-cycle management
Sabakan provides API to change server status for life-cycle management.
-
Audit logs
To track problems and life-cycle events, sabakan keeps operation logs within its etcd storage.
This repository contains these programs:
sabakan
: the network service to manage servers.sabactl
: CLI tool forsabakan
.sabakan-cryptsetup
: a utility to encrypt a block device using dm-crypt.
To see their usage, run them with -h
option.
docs directory contains tutorials and specifications.
Read getting started first.
Sabakan is licensed under MIT license.