Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 13 Jan 2015 16:12:27 -0800
From:      NGie Cooper <yaneurabeya@gmail.com>
To:        Bryan Drewery <bdrewery@freebsd.org>
Cc:        Craig Rodrigues <rodrigc@freebsd.org>, Ahmed Kamal <email.ahmedkamal@googlemail.com>, freebsd-current Current <freebsd-current@freebsd.org>
Subject:   Re: Devops question: freebsd-update needs a real tty to run, problem for automation
Message-ID:  <CAGHfRMD7Fe%2BdCvi1pFmsu73JtnA28=M1HbJWJJCmRNOkMUgukw@mail.gmail.com>
In-Reply-To: <CAGHfRMDXGMVh56C%2B9DtpK9QXuooFSQrxYakUpNA60gzVVbNZFg@mail.gmail.com>
References:  <CAG=rPVcLWgXR_7JabjbkCWK=SkrQrgcZmAS=Yde0mE3Qpz8Q=A@mail.gmail.com> <54B5AA4C.7050307@FreeBSD.org> <CAGHfRMDXGMVh56C%2B9DtpK9QXuooFSQrxYakUpNA60gzVVbNZFg@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, Jan 13, 2015 at 4:09 PM, NGie Cooper <yaneurabeya@gmail.com> wrote:
> On Tue, Jan 13, 2015 at 3:29 PM, Bryan Drewery <bdrewery@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

$ grep -nr /dev/tty `which freebsd-update`
2375:            read dummy </dev/tty
2376:            ${EDITOR} `pwd`/merge/new/${F} < /dev/tty
2405:                continuep < /dev/tty || return 1
2417:            continuep < /dev/tty || return 1



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAGHfRMD7Fe%2BdCvi1pFmsu73JtnA28=M1HbJWJJCmRNOkMUgukw>