How to perform rest of tasks after reboot



I have the number of the task after the reboot command in recipes, but when reboot command is executed, the rest of the tasks are not executed.

reboot 'now' do
  action :nothing
  reason 'Cannot continue Chef run without a reboot.'
  delay_mins 0

file 'c:/text.txt'  do
	action :create
	notifies :reboot_now, 'reboot[now]', :immediately

# Delay of 5 second
powershell_script '5 second delay' do
   code 'Start-Sleep 5'

file 'c:/text2.txt'  do
	action :create


Hi Deepak,

I worked on similar scenario in my last project . below is the approach to handle recipes after reboot.

a) Before calling a reboot function. I had created a schedule task in windows (that will run only once )

b) this schedule task will run the chef client and call rest of the recipe's to be executed after reboot

c) At the last , do some clean up to remove schedule task




Thanks, Sachin

Suppose I have 10 recipes, and all are mentioned in the default recipes. I want to reboot the chef-node in 2-3 recipes.


include_recipe 'TestCookbook::recipe_1'
include_recipe 'TestCookbook::recipe_2'
include_recipe 'TestCookbook::recipe_3'
include_recipe 'TestCookbook::recipe_3'
include_recipe 'TestCookbook::recipe_10'

If I used reboot in recipe_2 and recipe_5, in this case how task scheduler will work?
How will the user know about the completion of all recipes?
Can a single task scheduler run multiple recipes? If yes, then how?

Can you please provide a example to run multiple recipes in single task scheduler in sequence?
I also want that if there is failure in ant recipe, suppose recipe_3 is failed during task scheduler execution, then rest of task should be stopped, and then how chef- workstation will know, there is an failure in in recipe_3?



Hi Deepak,

I would suggest group your recipes in two parts, one group required to run before reboot and second group after the reboot .

you can check each of the chef run logs (through the chef portal Chef Automate )