RE: RE: Re: RE: RE: Re: Re: Re: Windows Reboots

Instead of using a tag, try adding an only_if or not_if to your powershell scripts. That will prevent the script from running - or notifying - if the condition is already met (for instance, if your computer is already joined to the domain).

Kevin Keane

The NetTech

http://www.4nettech.com

Our values: Privacy, Liberty, Justice

See https://www.4nettech.com/corp/the-nettech-values.html

-----Original message-----
From: Simon Hawkins Simon.Hawkins@totaljobsgroup.com
Sent: Wednesday 1st April 2015 4:39
To: chef@lists.opscode.com
Subject: [chef] RE: Re: RE: RE: Re: Re: Re: Windows Reboots

Hi Taras,

Yes, I have been looking at the following:

Chef - How Reboot VM and continue performing actions - Stack Overflow http://stackoverflow.com/questions/24497840/chef-how-reboot-vm-and-continue-performing-actions

The question is, can you add tags on a boot strap, so for example it gets set to 1 and runs the rename_hostname part?

I assume my recipe would look like this

Rename_host:

if tagged?("doAction1")

reboot "now" do

action :nothing

reason "Cannot continue Chef run without a reboot."

delay_mins 0

end

powershell_script "rename_hostname" do

code <<-EOH

EOH

notifies :reboot_now, 'reboot[now]', :immediately

end

end


And the domainjoin would be:

if tagged?("doAction2")

reboot "now" do

action :nothing

reason "Cannot continue Chef run without a reboot."

delay_mins 0

end

powershell_script "join_domain" do

code <<-EOH

EOH

notifies :reboot_now, 'reboot[now]', :immediately

end

end

Cheers,

Simon

From: klum_tz@ukr.net [mailto:klum_tz@ukr.net]
Sent: 01 April 2015 11:55
To: chef@lists.opscode.com
Cc: chef@lists.opscode.com
Subject: [chef] Re: RE: RE: Re: Re: Re: Windows Reboots

Hi Simon,

One of possible solutions (I saw it somewhere in the internet) is using tags.

E.G. if box has this tag do some step/recipe. Inside that step/recipe delete that tag,

Next time after reboot that box will not have this tag hence other step will go further which is based on other tag...

So essentially create few tags. And each step/recipe will require some list of tags.

Hence after reboot chef-client will start again. But basing on tags present for this node we can run and manipulate with what we would like to run...

And just clean tags after recipe is done.

Regards,

Taras.

--- Оригінальне повідомлення ---
Від кого: "Simon Hawkins" <simon.hawkins@totaljobsgroup.com mailto:simon.hawkins@totaljobsgroup.com >
Дата : 31 березня 2015, 17:36:25

I’ve tried doing the following also:

  1.   Changed my run list to run just call the join domain script.
    
  2.   Add an include in the join domain recipe to call the rename_hostname recipe.
    
  3.   When the client is run, the rename_hostname recipe is called and the reboot is run.
    
  4.   The chef run gets terminated, so the domainjoin is never completed, but the machine reboots.
    

Is there any way of pausing the chef-run to wait for the machine to come back up, then run the domain join and reboot after that?

Cheers,

Simon.

From: Simon Hawkins [mailto:Simon.Hawkins@totaljobsgroup.com mailto:Simon.Hawkins@totaljobsgroup.com ]
Sent: 31 March 2015 09:56
To: galen@getchef.com mailto:galen@getchef.com ;chef@lists.opscode.com mailto:chef@lists.opscode.com
Subject: [chef] RE: Re: Re: Re: Windows Reboots

Hi Daniel,

Many thanks, I now get this:

10.x.x.x [2015-03-31T09:35:41+01:00] WARN: Rebooting server at a recipe's request. Details: {:delay_mins=>3, :reason=>"Cannot continue Chef run without a reboot.", :timestamp=>2015-03-31 09:35:40 +0100, :requested_by=>"now"}

And the box restarts. The only thing is the chef run terminates and doesn’t go onto the next recipe. I was expecting the run to pause for 3 mins and then carry on after the reboot, is that how it should work? Do I need to put recipe depends on statements in the domainjoin recipe?

I have this in the rename machine recipe:

reboot "now" do

action :nothing

reason "Cannot continue Chef run without a reboot."

delay_mins 3

end

powershell_script "rename_hostname" do

code <<-EOH

….

EOH

notifies :reboot_now, 'reboot[now]', :immediately

END

Cheers,

Simon.

From: Galen Emery [mailto:galen@getchef.com mailto:galen@getchef.com ]
Sent: 30 March 2015 16:22
To: chef@lists.opscode.com mailto:chef@lists.opscode.com
Subject: [chef] Re: Re: Re: Windows Reboots

On Mon, Mar 30, 2015 at 7:42 AM, Daniel DeLeo <dan@kallistec.com mailto:dan@kallistec.com > wrote:

Recent versions of Chef Client have a built-in reboot resource. http://docs.chef.io/resource_reboot.html http://docs.chef.io/resource_reboot.html

--
Daniel DeLeo

On Monday, March 30, 2015 at 7:40 AM, klum_tz@ukr.net mailto:klum_tz@ukr.net wrote:

Hi Simon.

What I see at the moment is to run recipe which creates scheduled 1 time task which will run after reboot.
And in this task you will feed some batch file for changing PC name and adding it into domain.

Regards,
Taras.

--- Оригінальне повідомлення ---
Від кого: "Simon Hawkins" <simon.hawkins@totaljobsgroup.com mailto:simon.hawkins@totaljobsgroup.com (mailto:simon.hawkins@totaljobsgroup.com mailto:simon.hawkins@totaljobsgroup.com )>
Дата: 30 березня 2015, 17:19:12

All,

I have a recipe run as the following:

  1. Change the machine name using a powershell script (which only applies the name after a reboot L)

  2. Recipe to join the machine to the domain using the window_ad cookbook.

Because both these recipes reboot, how do I get chef to wait for the box to have restarted before it runs the join domain recipe? Currently at the moment it tries to run it during the reboot and fails.

Cheers,

Simon.

Disclaimer
This message is intended only for the use of the person(s) ("Intended Recipient") to whom it is addressed. It may contain information which is privileged and confidential. Accordingly any dissemination, distribution, copying or other use of this message or any of its content by any person other than the Intended Recipient may constitute a breach of civil or criminal law and is strictly prohibited. If you are not the Intended Recipient, please contact the sender as soon as possible.

Totaljobs Group Limited Registered Office: Bluefin Building, 110 Southwark Street, London, SE1 0TA, UK Registered in England and Wales under company no. 4269861

In addition,

There's the reboot_pending? helper: About the Chef Infra Language

That allows you to guard against the reboot pre-emptively.