mr-provisioner is a tool that provisions hardware with specific images so they can be tested (it can provision ARM64/AMD/Intel hardware). At Linaro, we had labs with OpenStack installed over a few servers, we had labs for testing that needed to be reprovisioned regularly depending on what was being tested. Before this project we didn’t have a standard way to install across data centers, get repeatable and reliable test results, share and test systems across vendors and architectures. So this was the first step on the quest of setting up a reliable infrastructure lab.

It is written in python and javascript. It uses postgres as the backend database and kea for dhcp requests.

The initial requirements were simple:

  • being able to assign servers to users for testing without having to share admin rights on the infrastructure (controlled test environment)
  • install servers with kernel/initrd of the engineer’s choosing
  • ability to preseed/kickstart the installs by the engineer and debug end to end
  • remote console access to the servers
  • asset management of the lab integrated, rather than an external spreadsheet
  • useful for manual (UI) and automated (API) testing
  • generic tool, not vendor specific
  • easy to use

More information

Design documentation: readthedocs

Source code: