Date: Wed, 11 May 2022 13:20:37 -0300 From: Cristian Cardoso <cristian.cardoso11@gmail.com> To: Alan Somers <asomers@freebsd.org>, FreeBSD CURRENT <freebsd-current@freebsd.org> Subject: Re: Upgrade automation Message-ID: <CAKeEC-K=5wOx1UZMy==Nk1_5=Xj1keTjNTn0vffBakv0UBjS-A@mail.gmail.com> In-Reply-To: <c2881018-8c94-f2fc-0602-bfa57dcba35a@quip.cz> References: <CAKeEC-%2Bwqzz_qrHWhCsTGcM9%2B%2BGdMouX8TEGWhCJ2Y%2B5=-nfUA@mail.gmail.com> <CAOtMX2hObotfGtjSoW6HftzP9bZ05d2OPFK2krKW9_6a0r97mQ@mail.gmail.com> <c2881018-8c94-f2fc-0602-bfa57dcba35a@quip.cz>
index | next in thread | previous in thread | raw e-mail
[-- Attachment #1 --]
I create this playbook:
- name: Applying major version upgrade
command: freebsd-update --not-running-from-cron upgrade -r {{ version }}
become: yes
tags:
- freebsd-upgrade
- name: Apply update installation
command: freebsd-update --not-running-from-cron install
become: yes
tags:
- freebsd-upgrade
- name: Reboot after upgrade
shell: "sleep 5 && reboot"
async: 1
poll: 0
become: yes
tags:
- freebsd-upgrade
- name: Waiting for machine reboot (max 600s)
wait_for_connection:
connect_timeout: 20
sleep: 20
delay: 60
timeout: 600
tags:
- freebsd-upgrade
- name: Running freebsd install userland
command: freebsd-update --not-running-from-cron install
become: yes
tags:
- freebsd-upgrade
But since the command doesn't support -y no -not-running-from-cron for the
upgrade command, I believe everything is stalling on this question and the
playbook has no proceeding and it stays on this question below:
The following components of FreeBSD do not seem to be installed:
world/base-dbg world/lib32-dbg
Does this look reasonable (y/n)?
Em ter., 10 de mai. de 2022 às 13:38, Miroslav Lachman <000.fbsd@quip.cz>
escreveu:
> On 10/05/2022 17:46, Alan Somers wrote:
> > 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.
>
> Automation with etcupdate sounds very scary to me because etcupdate
> breaks real life configuration files inplace. Mergemaster did it on
> temporary copies. But if you let etcupdate to left something (after
> merge conflict) in vital config file(s) wich will have syntax error on
> next boot, then you are out.
> It would be much better if etcupdate do not edit target file on merge
> conflicts.
>
> Kind regards
> Miroslav Lachman
>
[-- Attachment #2 --]
<div dir="ltr"><div dir="ltr">I create this playbook:<div><br></div><div><br></div><div><pre class="gmail-bbCodeCode" dir="ltr" style="box-sizing:border-box;font-family:Monaco,Menlo,Consolas,"Roboto Mono","Andale Mono","Ubuntu Mono",monospace;font-size:13px;margin-top:0px;margin-bottom:0px;padding:10px 10px 0px;line-height:1.4;overflow:auto;direction:ltr;color:rgb(20,20,20);background-color:rgb(246,246,246)"><code style="box-sizing:border-box;font-family:inherit;font-size:1em">- name: Applying major version upgrade
command: freebsd-update --not-running-from-cron upgrade -r {{ version }}
become: yes
tags:
- freebsd-upgrade
- name: Apply update installation
command: freebsd-update --not-running-from-cron install
become: yes
tags:
- freebsd-upgrade
- name: Reboot after upgrade
shell: "sleep 5 && reboot"
async: 1
poll: 0
become: yes
tags:
- freebsd-upgrade
- name: Waiting for machine reboot (max 600s)
wait_for_connection:
connect_timeout: 20
sleep: 20
delay: 60
timeout: 600
tags:
- freebsd-upgrade
- name: Running freebsd install userland
command: freebsd-update --not-running-from-cron install
become: yes
tags:
- freebsd-upgrade</code></pre></div></div><div><br></div><div><br></div><div>But since the command doesn't support -y no -not-running-from-cron for the upgrade command, I believe everything is stalling on this question and the playbook has no proceeding and it stays on this question below:<br></div><div><br></div><div><pre class="gmail-bbCodeCode" dir="ltr" style="box-sizing:border-box;font-family:Monaco,Menlo,Consolas,"Roboto Mono","Andale Mono","Ubuntu Mono",monospace;font-size:13px;margin-top:0px;margin-bottom:0px;padding:10px 10px 0px;line-height:1.4;overflow:auto;direction:ltr;color:rgb(20,20,20);background-color:rgb(246,246,246)"><code style="box-sizing:border-box;font-family:inherit;font-size:1em">The following components of FreeBSD do not seem to be installed:
world/base-dbg world/lib32-dbg
Does this look reasonable (y/n)?</code></pre></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Em ter., 10 de mai. de 2022 às 13:38, Miroslav Lachman <<a href="mailto:000.fbsd@quip.cz">000.fbsd@quip.cz</a>> escreveu:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On 10/05/2022 17:46, Alan Somers wrote:<br>
> On Tue, May 10, 2022 at 9:08 AM Cristian Cardoso<br>
> <<a href="mailto:cristian.cardoso11@gmail.com" target="_blank">cristian.cardoso11@gmail.com</a>> wrote:<br>
>><br>
>> Hi<br>
>><br>
>> I have some FreeBSD servers in my machine park and I would like to perform the version upgrade in an automated way with ansible.<br>
>><br>
>> 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:<br>
>><br>
>> freebsd-update --not-running-from-cron upgrade -r 12.2-RELEASE<br>
>><br>
>> I ask this, because I don't know if it's the most correct way to execute this.<br>
>><br>
>> Grateful for any assistance.<br>
> <br>
> Yes, that's perfect. But there's another step too. You'll have to do:<br>
> freebsd-update install<br>
> And _this_ step isn't easy to perfectly automate, because etcupdate<br>
> may ask for your input when it merges config files. If you know<br>
> exactly which etc files you've modified, you can add them to<br>
> IgnorePaths. That way etcupdate won't run interactively, it will<br>
> simply throw away changes from upstream.<br>
<br>
Automation with etcupdate sounds very scary to me because etcupdate <br>
breaks real life configuration files inplace. Mergemaster did it on <br>
temporary copies. But if you let etcupdate to left something (after <br>
merge conflict) in vital config file(s) wich will have syntax error on <br>
next boot, then you are out.<br>
It would be much better if etcupdate do not edit target file on merge <br>
conflicts.<br>
<br>
Kind regards<br>
Miroslav Lachman<br>
</blockquote></div></div>
help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAKeEC-K=5wOx1UZMy==Nk1_5=Xj1keTjNTn0vffBakv0UBjS-A>
