We, as developers, spend most of our time with computers. It doesn’t matter if we are writing new lines of code, blaming existing code (written by other team members), running test suites, Googling or checking StackOverflow with hopes of finding a solution for coding problems; we make our laptops work hard! On top of this, certain operations (like running all Cucumber tests) take a lot of time and/or hardware resources which can put strain on even the most powerful computers.
So, to keep us (and our laptops) more happy, we’ve decided to outsource most of this ‘heavy work’ to a special ‘server’. And as a result, we bought a new, shared developer machine for the office to act as the server for what we call project “Dev’s PC” (or DPC for short).
Building a computer from scratch and choosing the individual components is about the nerdiest thing you can do. And as developers it is our duty to follow this path to the end (it’s also a lot of fun).
We settled on the following configuration for DPC:
- ASUS M5A97 motherboard.
- AMD FX-8300 CPU (8 cores ready for hard work with speeds of 3.3GHz).
- 32GB 1.6GHz Kingston-made RAM (4x8GB).
- 120GB Samsung SSD disk (for being fast, dedicated for root partition).
- 2TB Toshiba magnetic spin disk (for big storage, dedicated for /home mount point).
- Graphics card… none (who needs it for a server which will be sitting somewhere in the office corner doing its job and producing some additional heat so badly needed during cold winter days…).
After completing the order, we just had to wait for our new toy to be delivered. And after few days this big box appeared in the office…
After receiving the hardware, the next step was to decide what software we would use - starting with the operating system. We had a few different suggestions but in the end CentOS won out. Here’s our logic behind this:
- Our AWS environment servers are running Amazon Linux, which is based on Red Hat Enterprise Linux and CentOS and is known as open source alternative of it.
- The current version will provide full package updates up to the end of 2020 and security package updates up to middle of 2024, so we can forget about major OS updates for long time.
- The “enterprise” distribution provides very stable environment.
We went for a headless installation since DPC doesn’t have a graphics card. We used the Internet proper installation image on a USB to install the OS on the machine.
With everything connected, the VNC viewer was launched on one of the laptops and DPC was booted. The blinking LED was telling us that there’s some I/O traffic but we were not receiving any incoming VNC session, so it was time to do some investigating.
In the end, we had to introduce “Plan B” to the equation. With the help of Liam’s (voluntarily dismantled) personal computer, we ‘borrowed’ it’s graphics card so we could temporarily it to connect to DPC.
Thanks to the the new graphics unit, our brand new shiny machine - DPC™®© was also hooked up to a monitor and we could begin the investigation.
- We found that SecureBoot was on, so there was no easy way to boot the custom-built boot images. Also the default boot settings were set to “boot from Samsung SDD & Windows Boot Manager”.
- During the boot we were also welcomed by the Windows setup wizard (apparently if you select ‘No Operating System Required’ in your hardware specification then you still get a free gift from Redmond?).
Once we discovered the reasons behind the previous problems, a few simple fixes and BIOS settings updates, we were finally been welcomed by proper installation screen.
To be continued…