[chef] Re: Upgrading chef-client on Windows not supported?


Chronological Thread 
  • From: Noah Kantrowitz < >
  • To:
  • Subject: [chef] Re: Upgrading chef-client on Windows not supported?
  • Date: Thu, 27 Feb 2014 13:21:23 -0800

Windows, unlike all other OSes, locks executable files while they are 
running. The usual solution is to just move the old executables aside and 
write the new ones in their place. Unfortunately there is no way to do this 
atomically, so you often end up with tiny updater.exe binaries that the 
original process launches (and then kills itself) to manage the update 
process. I'm sure a pull-request would be happily accepted to add this dance 
to the omnibus_updater cookbook and I'm happy to talk anyone through other 
strategies for doing binary updates on Windows (might as well get some 
benefit out of doing that for 3 solid years :-).

--Noah

On Feb 27, 2014, at 1:15 PM, Jeppe Nejsum Madsen 
< >
 wrote:

> Ohai,
> 
> I've been trying to figure out how to best upgrade chef-client on Windows 
> machines, but can't find any info about it.
> 
> This seems a bit strange since Chef is clearly being pushed as being 
> windows friendly (http://www.getchef.com/solutions/windows/).
> 
> The official(?) way of upgrading chef-client 
> (http://www.getchef.com/blog/2013/12/20/managing-chef-with-chef/
> unfortunately doesn't work: 
> https://github.com/hw-cookbooks/omnibus_updater/issues/32
> 
> So for this not to end up too whiny, I decided to actually fix the 
> omnibus_updater issue.
> 
> What I got seems to work to some degree in that the MSI gets downloaded and 
> the installation starts. But during the installation it seems like the 
> running chef-client process gets a SIGINT and stops with a failure. But the 
> installation continues (and the RestartManager says a reboot is required) 
> 
> Recipe: omnibus_updater::downloader←[0m
>   * remote_file[omnibus_remote[chef-client-11.6.2-1.windows.msi]] action 
> create_if_missing←[0m←[32m
>     - copy file downloaded from [] into 
> C:/chef/cache/chef-client-11.6.2-1.windows.msi←[0m←[37m
>         (file sizes exceed 10000000 bytes, diff output suppressed)←[0m
> ←[0m
> Recipe: omnibus_updater::installer←[0m
>   * ruby_block[Omnibus Chef install notifier] action create←[0m←[32m
>     - execute the ruby block Omnibus Chef install notifier←[0m
> ←[0m
>   * file[/tmp/nocheck] action create←[0m (skipped due to only_if)←[0m
>   * ruby_block[omnibus chef killer] action nothing←[0m (up to date)←[0m
>   * windows_package[stfu] action nothing←[0m (up to date)←[0m
>   * ruby_block[Omnibus Chef install notifier] action nothing←[0m (up to 
> date)←[0m
>   * windows_package[chef-client] action 
> install←[0m[2014-02-27T22:04:13+01:00] FATAL: SIGINT received, stopping
> [2014-02-27T22:04:51+01:00] FATAL: SIGINT received, stopping
> 
> ================================================================================←[0m
> ←[31mError executing action `install` on resource 
> 'windows_package[chef-client]'←[0m
> ================================================================================←[0m
> 
> ←[0m
> SystemExit←[0m
> ----------←[0m
> exit←[0m
> 
> After a while the installation does seems to complete...
> 
> Is the only alternative really to install the MSI through some other means?
> 
> /Jeppe

Attachment: signature.asc
Description: Message signed with OpenPGP using GPGMail




Archive powered by MHonArc 2.6.16.

§