Infrastructure as Code
DevOps is about building infrastructure as code. You never want to manually install software, change a configuration setting, add a new server, or update a database. Every operation you perform on a computing cluster should be automated, repeatable, and recoverable.
But what about the operating system?
OS Installation and Updates as Code
If you build a cluster and install the same operating system on each server, then add a new node tomorrow, there’s no guarantee that you’ll get the same updates or the same kernel the next time you install the OS.
What if you have some dependency on a particular library, kernel module, or the kernel itself? Different versions of key files on different machines can cause intermittent, hard-to-fix problems — frustrating your users and causing extra work and extra headaches for your sys admins.
Some companies solve the problem by creating a copy of the OS repo and installing from that. The problem is that the copy rarely gets updated, and your computing system’s security is weakened as you fall further and further behind in your OS updates.
Reposnap: Weekly snapshots of popular OS Repos
Each Wednesday at noon UTC Reposnap makes a snapshot of every package available in popular Linux server repos. We keep the snapshots on-line for up to 2 years, so that you can create identical servers with identical packages for testing, staging, and production environments.
Install the same OS packages on every server you manage. Install identical packages in testing, staging, and production environments.
Install the operating system from a static snapshot of a repository and use that snapshot for all of the nodes in your cluster.
Run regression tests of your software using the latest OS security updates, then install the same, identical OS updates on every server in production.
Update your servers using OS packages available on a specific day this week, and keep installing those same packages on all of your servers if you find that a new package has a bug or introduces incompatibilities.