Sachin KumarHi Sergii/Kimball,Thanks & Regards,
I am able to write reboot handler and this is working fine as expected but still needs to know whether this is the right approach. this is my first LWRP..
linux_reboot 'kernel updated' do
action :reboot
end
provider/reboot.rb
action :reboot do
Chef::Log.info "=== Cookbook: #{cookbook_name}"
Chef::Log.info '=== Resource: Reboot / Action: reboot'
Chef::Log.info "=== Resource Name: #{@new_resource.name}"
converge_by("rebooting the system immediately") do
Chef::Log.warn "Rebooting system immediately, requested by '#{@new_resource.name}'"
reboot
end
def load_current_resource
@current_resource = Chef::Resource::linuxReboot.new(@new_resource.name)
@current_resource
end
def reboot
Chef::Log.info 'Reboot*************************************'
Mixlib::ShellOut.new(node[:linux][:command]).run_command
end
command is defined in attribute file as
default[:linux][:command] = 'shutdown -r +1&'On Mon, Jan 12, 2015 at 3:58 PM, Sergii Bieliaievskyi < " target="_blank"> > wrote:2) who -bThere are a lot of possibilities including cron. Here are more:1) last rebootTopic starter has many options now.2015-01-12 12:19 GMT+02:00 Kimball Johnson < " target="_blank"> >:There is an @reboot cron and similar in system timers - I think they would be beneficial for this, checking for a shot uptime is likely to be inconsistent.KimballOn 12 January 2015 at 10:13, Sergii Bieliaievskyi < " target="_blank"> > wrote:Linux has uptime command I think it`s the best way to indicate reboot happened.I hope, it will help.2015-01-12 11:17 GMT+02:00 Sachin Gupta < " target="_blank"> >:Hi All,I will be calling linux_reboot once there is an kernel update.
I have an use case where I need to reboot the machine if there is any new kernel update/install.
I am trying to write an LWRP for reboot handler that can be used in other recipe's also.
added this code in recipe for reboot:;
linux_reboot 'kernel updated' do
action :reboot
end
----------------------------------------------------
resource/reboot.rb
------------------------------------------------------
actions :reboot
default_action :reboot
attribute :happened, kind_of: String
attr_accessor :exists
-----------------------------------------------------------
provider/reboot.rb
------------------------------------------------------
def whyrun_supported?
true
end
action :reboot do
Chef::Log.info "=== Cookbook: #{cookbook_name}"
Chef::Log.info "=== Resource Name: #{@new_resource.name}"
if @current_resource.happened
Chef::Log.info 'Reboot happened'
else
converge_by("Reboot system") do
reboot
end
end
end
def load_current_resource
@current_resource = Chef::Resource::linuxReboot.new(@new_resource.name)
@current_resource.happened = false
begin# search for a file and set the flag..end
Chef::Log.debug "Reboot debug message"
@current_resource
end
def reboot
Chef::Log.info 'Reboot The Machine'
end
------------------------------------------------------------------------------
what is the best way to indicate a reboot happened. shall I look for a file indicating a reboot or something else??
I am thinking to search for a file and if the reboot happened then set happened=true and return. will this work and is the right approach??
Thanks & Regards,
Sachin Kumar
PRIVILEGED AND CONFIDENTIAL COMMUNICATIONThis e-mail transmission, and any documents, files or previous e-mail messagesattached to it, may contain confidential information that is legally privileged.If you are not the intended recipient or a person responsible for delivering itto the intended recipient, you are hereby notified that any disclosure, copying,distribution or use of any of the information contained in or attached to thistransmission is strictly prohibited.If you have received this transmission in error, please: (1) immediately notifyme by reply e-mail, or by collect telephone call; and (2) destroy the originaltransmission and its attachments without reading or saving in any manner.
PRIVILEGED AND CONFIDENTIAL COMMUNICATIONThis e-mail transmission, and any documents, files or previous e-mail messagesattached to it, may contain confidential information that is legally privileged.If you are not the intended recipient or a person responsible for delivering itto the intended recipient, you are hereby notified that any disclosure, copying,distribution or use of any of the information contained in or attached to thistransmission is strictly prohibited.If you have received this transmission in error, please: (1) immediately notifyme by reply e-mail, or by collect telephone call; and (2) destroy the originaltransmission and its attachments without reading or saving in any manner.
Archive powered by MHonArc 2.6.16.