Re: Upgrade automation

From: Alan Somers <asomers_at_freebsd.org>
Date: Tue, 10 May 2022 15:46:51 UTC
On Tue, May 10, 2022 at 9:08 AM Cristian Cardoso
<cristian.cardoso11@gmail.com> wrote:
>
> Hi
>
> I have some FreeBSD servers in my machine park and I would like to perform the version upgrade in an automated way with ansible.
>
> In my example, I want to perform the upgrade from version 12.3 to 13, it is possible to run the upgrade with the command below:
>
> freebsd-update --not-running-from-cron upgrade -r 12.2-RELEASE
>
> I ask this, because I don't know if it's the most correct way to execute this.
>
> Grateful for any assistance.

Yes, that's perfect.  But there's another step too.  You'll have to do:
freebsd-update install
And _this_ step isn't easy to perfectly automate, because etcupdate
may ask for your input when it merges config files.  If you know
exactly which etc files you've modified, you can add them to
IgnorePaths.  That way etcupdate won't run interactively, it will
simply throw away changes from upstream.

Whenever I need to upgrade multiple machines at once, I start tmux,
split it into multiple panes, ssh to each server from one pane, then
do ":synchronize-panes on" so my input will be directed to multiple
panes simultaneously.  Usually, that works for 90% of the upgrade.
But invariably there are a few files that aren't synchronized between
the servers, and I have to desynchronize my panes to deal with that.

-Alan