37 lines
1.2 KiB
Ruby
37 lines
1.2 KiB
Ruby
|
include_recipe 'omnibus_updater'
|
||
|
remote_path = node[:omnibus_updater][:full_url].to_s
|
||
|
|
||
|
ruby_block 'Omnibus Chef install notifier' do
|
||
|
block{ true }
|
||
|
action :nothing
|
||
|
subscribes :create, "remote_file[omnibus_remote[#{File.basename(remote_path)}]]", :immediately
|
||
|
notifies :run, "execute[omnibus_install[#{File.basename(remote_path)}]]", :delayed
|
||
|
end
|
||
|
|
||
|
execute "omnibus_install[#{File.basename(remote_path)}]" do
|
||
|
case File.extname(remote_path)
|
||
|
when '.deb'
|
||
|
command "dpkg -i #{File.join(node[:omnibus_updater][:cache_dir], File.basename(remote_path))}"
|
||
|
when '.rpm'
|
||
|
command "rpm -Uvh #{File.join(node[:omnibus_updater][:cache_dir], File.basename(remote_path))}"
|
||
|
when '.sh'
|
||
|
command "/bin/sh #{File.join(node[:omnibus_updater][:cache_dir], File.basename(remote_path))}"
|
||
|
else
|
||
|
raise "Unknown package type encountered for install: #{File.extname(remote_path)}"
|
||
|
end
|
||
|
action :nothing
|
||
|
notifies :create, 'ruby_block[omnibus chef killer]', :immediately
|
||
|
end
|
||
|
|
||
|
ruby_block 'omnibus chef killer' do
|
||
|
block do
|
||
|
raise 'New omnibus chef version installed. Killing Chef run!'
|
||
|
end
|
||
|
action :nothing
|
||
|
only_if do
|
||
|
node[:omnibus_updater][:kill_chef_on_upgrade]
|
||
|
end
|
||
|
end
|
||
|
|
||
|
include_recipe 'omnibus_updater::old_package_cleaner'
|