I am currently studying the possible implementation of a Puppet module for MantisBT instance deployment. For those who are not familiar with Puppet, it is an IT automation software like Chef.
The idea is to automate the deployment of software and tools using a descriptive language. Users can defined the state in which an environment/machine is to be, and Puppet ensure it is done.
What I would like to do is implement a Puppet module which can manage MantisBT installation (i.e. copy the file to a webserver) and configuration such as
projects, users and rights. For this I need to find an efficient way to manage Mantis configuration externally (via Puppet in our case).
For example, I would need to check for a Project existence, and create it if it does not exists.
So far I found the following possibilities:
- use the MantisBT SOAP API (seems the most efficient)
- directly query the database to update configuration related tables as wished
- another way I did not think about?
- Ensure Apache as a web server (or another web server manageable via Puppet)
- Ensure MySQL as a database (or another database server manageable via Puppet)
- Ensure the Mantis files are available to our webserver (this can be done by Puppet)
- Set-up the MantisBT projects, users, rights, etc. This is where we would require the configuration to be done.
Of course, if a module ends-up being implemented, I'll try to make it available publicly on GitHub and Puppet Forge, and I'll leave a link here
Thanks by advance for your help.
Regards,
Shelltreenok