Tech:Server Cycle

From Orain Meta
Revision as of 20:05, 18 October 2014 by John (talk | contribs) (fairly quick mockup)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

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, while fairly cheap for us, are costly to set up with regards to time. 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;

  • 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).

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.

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;

  • Which server needs to be re-imaged,
  • What it should be re-imaged to (Ubuntu LTS version),
  • Why it needs to be re-imaged.

Once all the information above is gathered, John will re-image the server as specified and ensure a successful ansible run occurs.

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.