I ran the following recipe
O:\chef\cookbooks\wincfg>chef-client -L C:\chef\rds_deployment.log -l info -z -o wincfg::rds_deployment
The server reboots as expected after installing a Windows feature
I see the last lines of my log file say:
[2016-04-17T01:43:51+00:00] INFO: powershell_script[Desktop-Experience] ran successfully
[2016-04-17T01:43:51+00:00] INFO: powershell_script[Desktop-Experience] sending reboot_now action to reboot[reboot] (immediate)
[2016-04-17T01:43:51+00:00] INFO: Processing reboot[reboot] action reboot_now (wincfg::rds_deployment line 6)
[2016-04-17T01:43:51+00:00] WARN: Rebooting system immediately, requested by 'reboot'
[2016-04-17T01:43:51+00:00] INFO: Changing reboot status from {} to {:delay_mins=>0, :reason=>"There is a pending reboot.", :timestamp=>2016-04-17 01:43:51 +0000, :requested_by=>"reboot"}
[2016-04-17T01:43:51+00:00] WARN: Skipping final node save because override_runlist was given
[2016-04-17T01:43:51+00:00] INFO: Chef Run complete in 90.479509 seconds
[2016-04-17T01:43:51+00:00] INFO: Skipping removal of unused files from the cache
[2016-04-17T01:43:51+00:00] INFO: Running report handlers
[2016-04-17T01:43:51+00:00] INFO: Report handlers complete
[2016-04-17T01:43:51+00:00] WARN: Rebooting server at a recipe's request. Details: {:delay_mins=>0, :reason=>"There is a pending reboot.", :timestamp=>2016-04-17 01:43:51 +0000, :requested_by=>"reboot"}
The part of the recipe in question is:
reboot "reboot" do
action :nothing
reason 'There is a pending reboot.'
only_if { reboot_pending? }
end
%w{ Desktop-Experience
Remote-Desktop-Services
RDS-RD-Server
RDS-Connection-Broker
RDS-Web-Access
RDS-Licensing
RDS-Gateway }.each do |feature|
powershell_script "#{feature}" do
code <<-EOH
Import-Module ServerManager
Add-WindowsFeature #{feature}
EOH
not_if "Import-Module ServerManager; (Get-WindowsFeature -Name #{feature}).Installed -eq $true"
notifies :reboot_now, 'reboot[reboot]', :immediately
end
end
I would expect for each of the features in the recipe, it would install using Add-WindowsFeature, if not already installed, then reboot immediately if reboot_pending is true.
It seems that the reboot is happening, but then the recipe isn’t picking up with the next feature (after Desktop-Experience).
How can I get reboot resumption working for zero client (local mode)?