Notes from my server upgrades to Ubuntu 20.04 LTS

This past weekend I learned that Ubuntu 20.04.1 LTS was out. This meant that I could start upgrading my servers from Ubuntu 18.04 LTS to Ubuntu 20.04 LTS as that is when do-release-upgrade makes the next LTS release available for upgrade.

I started with my web server i.e the server this blog is hosted on. Mostly because I’ve been wanting PHP 7.4 for my WordPress sites and Ubuntu 20.04 would give me that. The upgrade went without issue and after a small configuration change to nginx to make sure it used the new Unix socket for PHP 7.4 FPM, we were all good to go.

From then on, I went ahead and started doing more of the servers, in the order of the servers that were least likely to break with the upgrade.

Breakages and Manual Interventions

Some of my servers failed to upgrade the grub-pc package during the dist-upgrade process. dpkg simply returned a error code. This was fixed by purging grub-pc and installing the grub2 package and then configuring it according to Linode’s documentation on GRUB2. I’m not entirely sure why the grub-pc package failed to upgrade.

All my servers also needed the apt sources list entry for the Icinga repository manually updated to use focal. My Mastodon servers needed repository entries for nodesource manually updated as well.

Ubuntu 20.04 brought with it PostgreSQL 12 and that means manually upgrading the installs and databases on my PostgreSQL 10 servers. This involves dropping the newly created empty 12 ‘main’ cluster and then running pg_upgradecluster on the 10 ‘main’ cluster. After that completed, the 10 ‘main’ cluster can be dropped. I didn’t run into any issues here. I did take a manual backup of database(s) before I started the process and I would recommend everyone do that if possible.

I will however note here that since the process creates a copy of the database into the 12 cluster, you will nearly double your disk usage. This can be a problem if you have large pgsql databases and do not have enough spare disk space on your servers to complete the process. Something to keep in mind if you are planning on doing one of these.

Since PostgreSQL was upgraded to 12, the pgbackrest configuration and stanza needed to be updated. Their documentation goes through the process but I didn’t need to use it as it is fairly straight forward.

Bits, Bobs and Final Thoughts

Overall the process of upgrading my servers to Ubuntu 20.04 was fairly smooth. I didn’t encounter any catastrophic failures or data loss. If I had I could have reverted to the manual snapshots I took of the servers before I started.

I’m glad to finally have PHP 7.4 on my web server and WordPress no longer complaining about having to use PHP 7.2.

Another neat thing to note is that one of my servers was initially provisioned on 14.04 and has over the years been upgraded through LTS Ubuntu releases. So 14.04 -> 16.04 -> 18.04 -> 20.04.

That’s all from me!

Don’t Put Your Podcast On Amazon Music/Audible

Yesterday I received an e-mail from Amazon Music/Audible to the contact address for Shades of Brown that started like this:

Hello Podcaster,

We’re excited to let you know that Amazon Music and Audible will be adding podcasts to our respective services, including Amazon Music’s free tier. Please note that this information is confidential. In advance of launch, we would like to invite you to make your podcast(s) available on our services. Agreeing to add your content ensures your podcast(s) will be available to Amazon Music’s rapidly growing audience of over 55 million customers.

First things first: confidential? How is this confidential exactly? You sent this non-directly addressed e-mail to our contact address which I presume you either scraped from our site or from another podcast directory. There is no NDA here or any other kind of contract.

So I clicked through to their submission form and one of the pages has a “Content License Agreement” that you have to agree to if you want your podcast to show up in the Amazon Music/Audible podcast directory. One of the clauses I strictly object to:

Content Restrictions. Your Content may not (a) include advertising or messages that disparage or are directed against Amazon or any Service; (b) include advertising that does not comply with Amazon’s Creative Acceptance Policies, which Amazon may update from time to time and which are currently located at https://advertising.amazon.com/resources/ad-policy/en/creative-acceptance#generalcreativeguidelines (and any successor or related locations designated by Amazon); (c) promote or contain pornography or sexually explicit, obscene, violent, harassing, discriminatory, libelous or defamatory materials, or content that in our judgment is inappropriate or offensive; (d) promote, facilitate or undertake illegal or potentially illegal activities or (e) violate or infringe or promote the violation or infringement of any intellectual property, proprietary, or other rights of any person or entity. Amazon will not embed any advertising in or re-host your Content.

I bolded the objectionable subsection for you. Really Amazon? Really? I can’t include ads or messages that dunk on Amazon if I want to include our podcast in your podcast directory? No, just no. Fuck all the way off.

Shades of Brown will not be in the Amazon Music/Audible podcast directory until this non-disparagement clause is removed. I encourage others to not put their podcast on their directory as well. This kind of thing is not acceptable.

Encrypted DNS Query Transports and Their Trust Models

Recently there have been a couple bits of new on the DNS-over-HTTPS (DoH) and DNS-over-TLS (DoT) front. Comcast and Mozilla have struck a deal to provide a privacy oriented DoH service for Comcast users in the USA. Apple announced at WWDC 2020 that they are implementing both DoH and DoT on their iOS/iPadOS platforms with iOS/iPadOS 14.

So I feel that it is a good time to talk about the trust models inherent to the DNS query system for residential internet users and where DoH/DoT come in.

Continue reading “Encrypted DNS Query Transports and Their Trust Models”

Subscription Fatigue

The topic of subscription fatigue and subscriptions in general have been on my mind recently. I recently talked about it on an episode of Shades of Brown and I recently also read a blog post by TJ Luomo about tracking subscriptions.

Making resolutions for the new years is not something I usually do but at the start of 2020 I decided I would try to minimize recurring costs (aka subscriptions) as much as possible. So I decided to give the app TJ mentioned a try and just inputting all the subscriptions in my life was fatiguing in itself.

Continue reading “Subscription Fatigue”