Expected duration: Not sure This is to make Linux Server setup easy and repeatable. Basically, a GUI to build/modify a bash script from templated components then upload.
A GUI written in either Python or PHP which can send commands to a Linux Server via SSH. The GUI would (ideally) run on a local windows machine (but could be a website). It would have a library of bash scripts. It would be able to merge lines / alter switches and options from choices picked in the GUI, then, via SSH, upload them to the server. I have a set of some commands, but my collection is only half-built, so this is also to be discussed. To work on CentOS. Other server distro's good to have as well eg SUSE and Debian.
These would be regular server hardening scripts. eg, setting up the CentOS swapfile, running the rpm's for patch-updates. Making the firewall to drop packets from a port scan, installing the anti-rootkit script, that sort of thing.
The GUI would have a page per server (for infinite servers) into which you'd enter the IP Address and other logon details. You'd have some tick boxes to choose which scripts were to be uploaded. You'd have field(s) to enter email address for notification emails. It would setup user-quota's. You'd be able to change the SSH port. I'd want it to be easily extended to add extra scripts in future. Buttons would link to MS Word files allowing ongoing documentation to be added.
To use, you would tick the boxes of the scripts you wanted, then click submit. I'd want the replies to be sent back as text. By looking out for specific message strings, we could have a green light once a section had a success message. I'd want to log the replies and keep them with the page for that specific server. I'd want to be able to duplicate a page with its input fields so that it was easy to reuse a page again.
I already have some of these bash scripts, which worked well, but it would be a pain to have to redo that every time I have to reset the server.
I'm open to simplifying the above is a particularly difficult aspect is noticed.