Tech:Server Cycle

This is a fairly nice page for documenting the technical process behind creating servers, re-imaging them and releasing them as necessary. John is the main person who will be managing the servers in this sort of context so the full process (from start to finish) will be documented for the community at large.

Identify a need
Servers take a while to set up in short. A need for any change to the infrastructure should ultimately exist with reasons on why it is necessary. This step applies for both new servers and re-images. Once a need has been found with reasons ready to back it up - move to the appropriate section below.

New servers
For new servers, open an issue on GitHub (ansible-playbook) and attach the labels 'Infrastructure' and assign it to JohnFLewis. If you can not do this - email John once the issue has been created so he can look. The issue should contain; If any more additional information is needed, it will be requested for. Ideally, there should have been some sort of finance approval prior to the issue being opened or at least a consultation where a need was identified.
 * Why a new server is needed,
 * What specs it should have,
 * Who will be responsible for its set up,
 * Any initial roles or groups it should be added to (this is for basic ansible set up and nagios config).

John will look at the ticket and once all seems good - the server will be spawned and installed as instructed.

Re-imaging
If a server needs to be re-imaged, open an issue on GitHub (ansible-playbook) and attach the label 'Infrastructure' with JohnFLewis assigned. In the issue include; Once all the information above is gathered, John will re-image the server as specified and ensure a successful ansible run occurs.
 * Which server needs to be re-imaged,
 * What it should be re-imaged to (Ubuntu LTS version),
 * Why it needs to be re-imaged.

Releasing
Releasing a server is effectively the same decommissioning a server or re-imaging it for different purposes. A 'release' can either be a) a re-image for a different purpose, which would release the server to be something else and release the hostname to be used elsewhere or b) the permanent removal of a server and its hostname.

If a server is going to be released, open an issue with the label 'Infrastructure' and assign it to JohnFLewis with the following information;
 * Which server is being released,
 * Should it be re-imaged as a fresh install (for a reclaim later on), re-imaged in a different group or permanently removed from the cluster?
 * Why is this being done?

Once the above details are answered, John will pick the issue up and do as specified.