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