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

From: Baptiste Daroussin <bapt_at_FreeBSD.org>
Date: Wed, 14 Jan 2015 00:31:09 +0100
On Tue, Jan 13, 2015 at 05:29:16PM -0600, Bryan Drewery 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.
> 
> IMHO the check should be removed in the official version.
> 
You do not need it in poudriere as the rexec binary emulates a tty to workaround
this.

Best regards,
Bapt

Received on Tue Jan 13 2015 - 22:31:14 UTC

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