lib/dtk-node-agent/installer.rb in dtk-node-agent-0.10.0 vs lib/dtk-node-agent/installer.rb in dtk-node-agent-0.10.1
- old
+ new
@@ -65,10 +65,12 @@
shell "rm puppetlabs-release-#{@distcodename}.deb #{logstash_forwarder_package}"
# pin down the puppetlabs apt repo
FileUtils.cp("#{base_dir}/src/etc/apt/preferences.d/puppetlabs", "/etc/apt/preferences.d/puppetlabs")
elsif @osfamily == 'redhat'
shell "yum -y install yum-utils wget curl"
+ # do a full upgrade
+ shell "yum -y update"
case @osmajrelease
when "5"
shell "rpm -ivh #{CONFIG[:puppetlabs_el5_rpm_repo]}"
@osarch == 'X86_64' ? (shell "rpm -ivh #{CONFIG[:rpm_forge_el5_X86_64_repo]}") : (shell "rpm -ivh #{CONFIG[:rpm_forge_el5_i686_repo]}")
# 20xx is the major release naming pattern of Amazon Linux
@@ -162,44 +164,58 @@
def self.install_additions
# create puppet group
shell "groupadd puppet" unless `grep puppet /etc/group`.include? "puppet"
# create necessary dirs
- [ '/var/log/puppet/',
+ [ '/var/log/puppet/',
'/var/lib/puppet/lib/puppet/indirector',
- '/etc/puppet/modules'
+ '/etc/puppet/modules',
+ '/usr/share/dtk/modules'
].map! { |p| FileUtils.mkdir_p(p) unless File.directory?(p) }
# copy puppet libs
FileUtils.cp_r(Dir.glob("#{base_dir}/puppet_additions/puppet_lib_base/puppet/indirector/*"), "/var/lib/puppet/lib/puppet/indirector/")
- # copy r8 puppet module
- FileUtils.cp_r(Dir.glob("#{base_dir}/puppet_additions/modules/r8"), "/etc/puppet/modules")
+ # copy dtk/r8 puppet module
+ FileUtils.cp_r(Dir.glob("#{base_dir}/puppet_additions/modules/*"), "/usr/share/dtk/modules/")
+ # symlink dtk/r8 puppet module
+ FileUtils.ln_sf("/usr/share/dtk/modules/dtk", "/etc/puppet/modules/")
+ FileUtils.ln_sf("/usr/share/dtk/modules/r8", "/etc/puppet/modules/")
end
def self.base_dir
File.expand_path('../..', File.dirname(__FILE__))
end
+ def self.is_systemd
+ File.exist?("/etc/systemd/system")
+ end
+
def self.set_init(script)
shell "chmod +x /etc/init.d/#{script}"
if @osfamily == 'debian'
shell "update-rc.d #{script} defaults"
elsif @osfamily == 'redhat'
shell "chkconfig --level 345 #{script} on"
- shell "systemctl daemon-reload" if @osmajrelease == '7'
+ # in case of a systemd system, reload the daemons
+ if is_systemd
+ shell "systemctl daemon-reload"
+ shell "systemctl enable #{script}.service"
+ end
end
end
def self.install_arbiter
shell "git clone -b stable https://github.com/dtk/dtk-arbiter /usr/share/dtk/dtk-arbiter"
Dir.chdir "/usr/share/dtk/dtk-arbiter"
shell "bundle install --without development"
puts "Installing dtk-arbiter init script"
FileUtils.ln_sf("/usr/share/dtk/dtk-arbiter/etc/#{@osfamily}.dtk-arbiter.init", "/etc/init.d/dtk-arbiter")
+ # copy the service file, since systemd doesn't follow symlinks
+ FileUtils.cp("/usr/share/dtk/dtk-arbiter/etc/systemd.dtk-arbiter.service", "/etc/systemd/system/dtk-arbiter.service") if is_systemd
set_init("dtk-arbiter")
puts "Installing dtk-arbiter monit config."
monit_cfg_path = (@osfamily == 'debian') ? "/etc/monit/conf.d" : "/etc/monit.d"
set_init("monit")
- FileUtils.ln_sf("/usr/share/dtk/dtk-arbiter/etc/dtk-arbiter.monit", "#{monit_cfg_path}/dtk-arbiter")
+ FileUtils.ln_sf("/usr/share/dtk/dtk-arbiter/etc/dtk-arbiter.monit", "#{monit_cfg_path}/dtk-arbiter") if File.exist?(monit_cfg_path)
end
end
end
end
\ No newline at end of file