Re: Devops question: freebsd-update needs a real tty to run, problem for automation

From: NGie Cooper <yaneurabeya_at_gmail.com>
Date: Tue, 13 Jan 2015 16:09:57 -0800
On Tue, Jan 13, 2015 at 3:29 PM, Bryan Drewery <bdrewery_at_freebsd.org> wrote:
> On 1/13/2015 5:11 PM, Craig Rodrigues wrote:
>> Hi,
>>
>> Ahmed Kamal, a devops expert, is helping me to script the steps to
>> upgrade a cluster of FreeBSD machines.  For certain machines,
>> we want to track the official FreeBSD releases and use freebsd-update
>> to install official updates.
>>
>> We found that when the invocation of freebsd-update was scripted
>> and not run via a real tty, we can into this error:
>>
>> "freebsd-update fetch should not be run non-interactively."
>>
>> There are various workarounds mentioned on various web pages.
>> However, should we modify freebsd-update so that it can work better
>> when not run via a real tty?  This would make it more devops/automation
>> friendly.
>>
>> The closest thing I have found is "freebsd-update cron", which can fetch
>> the updates and run without a real tty.  The only problem with
>> "freebsd-update cron"
>> is that it sleeps a random amount of time between 1 and 3600 seconds before
>> fetching the updates.  This is OK when run in a cron job,
>> but not OK when run as part of a devops automation framework.
>>
>> Anybody have ideas as to the best way to proceed in fixing this in
>> freebsd-update?
>> --
>> Craig
>
>
> sed -i '' -e 's,-t 0 ];,-t 0 ] \&\& [ 0 -eq 1 ],' /usr/sbin/freebsd-update
>
> This is untested. We'll likely put it in Poudriere as well.

freebsd-update needs to grow a non-interactive option probably:

2375                         read dummy </dev/tty
2376                         ${EDITOR} `pwd`/merge/new/${F} < /dev/tty
2377                 done < failed.merges
2378                 rm failed.merges
Received on Tue Jan 13 2015 - 23:09:59 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:54 UTC