Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Help Request] Update/imrpove magma installer/documentation + status info. #132

Open
ladar opened this issue Jul 18, 2019 · 1 comment
Open

Comments

@ladar
Copy link
Member

ladar commented Jul 18, 2019

@gabrielmongefranco thank you for contacting me. In terms of contributing, we could certainly use your skills. Several things spring to mind.

We need to automate the process of building binary releases for the various popular distros (aka rpm/deb files), and writing a proper install/setup script. Our Jenkins server could handle the former, as it already does nightly build/test jobs on CentOS/Debian/Ubuntu/Fedora, so adding jobs to create binaries for the different platforms and uploading them to https://magmadaemon.org wouldn't be hard. Building binaries seems like a somewhat pointless effort without an installer though.

The vagrant VMs you mentioned, which eventually evolved into the roboxes project, was to create create turnkey magma appliance VMs. But because they lack an install script, they're only being used for cross platform testing at the moment.

In terms of status on an installer, our current INSTALL script was written 4 years ago, and is somewhat out of sync with where things are at... files have moved, steps added/removed, etc. Not sure what needs updating. Either way, it's written in perl, and should be redone as a bash script. A more current, but more obtuse install script is the magmad.install.sh script. What we need is a solid bash script which queries the user, like the perl version, and performs all of the steps required to install and configure magmad.

Our build.lib.sh script which compiles the bundled magmad dependencies would also benefit greatly from a dependency checker. Basically some bash logic that figures out which OS your using and then uses the appropriate tool/commands to ensure all the required dependencies are installed. We get lots of reports regarding failed builds that would disappear if we had this.

You also mentioned documentation. We could also use a lot of help in that department. In terms of magma/libdime/libcore, we have lots of documentation, but it's dispersed and hard to find. Even then, much of the documentation is in varying states of accuracy, as things have evolved, and the docs haven't been kept up to date. If you're interested in compiling and editing it all into a comprehensive guide, it would be extremely helpful as well. We need updated guides/docs for building, installing, and managing magma (and libdime/libcore by extension). We could also use help documenting how to troubleshoot common problems, with guides on showing how to use the bundled scripts/tools. In a perfect world, I'd write all this up, and publish it in book form.

Our developer documentation could also use a refresh, as it would make it easier for newcomers to understand the repo/code structure, contribution requirements, interface usage, etc, if there was a guide to go with the doxygen comments.

If you manage to do all that, I could also use help updating the DIME spec. A couple of years ago I decided to shift my focus away from writing the spec, to writing code. As such there are a few very minor things which need to be updated. But mostly there are a number of important sections that were planned, but never written. I would also like to reformat the spec, and publish it as an RFC series once it stabilises. I said when you get done with the rest, because this task is rather involved. I'm actually hoping to hire someone for the task at some point, if our budget allows.

@ladar
Copy link
Member Author

ladar commented Aug 2, 2019

Two install scripts which might be useful inspiration for a revamped Magma install script are the certbot-auo.sh bootstrap/installer/setup script and the setup-ds.pl LDAP directory server setup script. Attaching snapshots of both for reference.

certbot-auto.sh.txt

setup-ds.pl.tar.gz

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

No branches or pull requests

1 participant