mprov-ng.github.io

mProv is an improvised provisioner!

View on GitHub

mProv

mProv is an improvised provisioner. It was born out of the need for a simple, easy to install, and easy to use way of keeping inventory of a large number of machines, like those in a High Performance Cluster(HPC.) mProv was built to be modular, so adding new functions to it should be as easy as coding them in python and plugging them in. This allows for the provisioner to be able to extend to all aspects of an HPC system.


mProv Control Center

Buidl Status Latest Version License

The mProv Control Center (mPCC) is the heart of everything that mProv manages. It is the brains that runs everything through a web interface, thusly allowing for ease of use. mProv runs a REST/CRUD API for interfacing to the database and allowing remote access.

The mPCC performs a wide range of jobs, permissions, and maintenance:

The mPCC is based off of Django 3.2. You will need to run a Python web app server to then run the Django code. The installation proceedure found below will walk you through most of the necessary steps, including installing Apache with python38-mod_wsgi. This version of mPCC requires Python-3.8 or higher, however we are still testing with versions 3.9 and higher.

Requirements

Installation

This installation proceedure assumes that you have a system with at least the “Minimal Install” packages installed. You can have more than that, but the installer assumes it will have to handle most of the dependancy installaion.

If you download the installer and run it, it will create an env.db file for you if one doesn’t exist. You should modify this file and re-run the installer to install the mPCC.

Installation is best done by downloading install_mpcc.sh and running it as root. This script takes the following arguments:

Note: Passing neither -m or -p will default to an SQLite backend that will be stored in the db/ directory.

Example: ./install_mpcc.sh -m will install the mPCC to the machine it is run on, with all the dependencies, and set it up to run a mariadb back end.

Once everything is setup, you will want to add the necessary IP and hostnames for the machine to the .env file in /var/www/mprov_control_center/ for the ALLOWED_HOSTS variable. This is a comma separated list of IP’s and/or fqdns that mPCC will reply to. If you skip this step, you will not be able to access mPCC.

Docker

Docker images exist for the mPCC as well. More information on how to use the docker images will be coming soon, so keep an eye out for that. Basically, setting the right env vars, and running the docker image with the right exposed port should be enough to get it running. There are images for: SQLite implementations, MariaDB implementations, and PostgreSQL implementations. You will probably want to bind mount the following directories for data persistence:

Post installation

The succesfully installed MPCC admin UI is available at http:///admin/login/?next=/admin/ . The default credntails are admin / admin. Once you have the installation installed, it is highly suggested that you create an API Key and get a job server running, https://github.com/mprov-ng/mprov_jobserver/blob/main/README.md

When creating an API key in the mPCC, you only need to specify a name for the api key, the expire times are only if your security protocols dictate the need for expiring keys.