The Warewulf Data Store

From the Warewulf perspective, all components within an infrastructure configuration are objects. Nodes, files, VNFS images, bootstraps, etc.. are all objects to which you can assign key/value pairs, as well as other sub objects. The Warewulf Data Store is an architecture to persist and retrieve these objects easily and efficiently. The back end storage of these objects is abstracted out and modular. Thus it can support a wide range of technologies.

Presently, MySQL is used as the default back end data store implementation because it is widely known, reasonably fast, and utilizes a server/client architecture which easily supports multiple Warewulf servers and sub-masters.

Data Store Configuration

The configuration file for the datastore (assuming a standard build) would be located at /etc/warewulf/database.conf and (as of version 3.4) /etc/warewulf/database-root.conf.


In this file you will define the database type and driver as well as the default user access privileges.

# Database configuration
database type       = sql
database driver     = mysql

# Database access
database server     = localhost
database name       = warewulf
database user       = root
database password   = changeme


As of Version 3.4, you should use this file to define the user that has full privileges to the Warewulf database/tables and the database.conf file above should be used for non-privileged access to the datastore (e.g. a differentiation between user read only access, and root level changes).


Warewulf will automatically try and setup the back end database which includes setting up the tables and non-privleged read only access as defined in the non -root configuration file.