Select Page

Fearing change is normal and it is also a valid emotion. Within system administration, change appears in the form of upgrading. Upgrading is often closely followed by breaking.

Deploying a bleeding edge Ubuntu distribution with only 18 months until End of Life can be daunting. Why bother? Trying to source new packages for an ancient release (read: 12+ months) does not come without custom repositories or pinning versions.

I like to stick to defaults, and take advantage of the bleeding edge. Doing less work ensures a smaller of number of changes to maintain. With the following preparation, upgrading can be easier and less of a hassle.

Eliminate the pain by using includes! Many supplied packages allow you to override the core configuration file without touching the packaged version.

The PHP package will include any file in /etc/php/conf.d with a ‘.ini’ extension. This means you can set memory_limit and upload_max_filesize directives without touching /etc/php/php.ini. This means that if an upgrade needs to alter the core configuration, it may so do without detecting a non-maintainer change. The less user input an upgrade requires, the better.

Many packages are being designed to allow includes, increasing upgrade friendliness. Apache and nginx have sites-available directories for custom ‘.conf’ files. MySQL, like PHP, has conf.d directory for custom ‘.cnf’ files. Similar directories also exist for sudo and PHP-FPM, just to name a few. Having additional directories for user-made changes provides a target for version control systems to track application specific configuration.

Unfortunately, not all packages provide include parameters and thus are not upgrade friendly. The decision lies in what to modify strategically. For example, a default Varnish installation will only get you so far. Now one could modify both /etc/default/varnish and /etc/varnish/default.vcl files to extend default functionality. It’s ideal to update the former file to use an alternate VCL configuration file consolidating the non-maintainer changes to a single location.

The learnings here are that you can continually follow the bleeding edge, upgrading every six months, if you override configurations with custom includes.

Share This