lib/dtk-node-agent/installer.rb in dtk-node-agent-0.5.17 vs lib/dtk-node-agent/installer.rb in dtk-node-agent-0.6.0
- old
+ new
@@ -16,29 +16,38 @@
unless Process.uid == 0
puts "dtk-node-agent must be started with root/sudo privileges."
exit(1)
end
- if Facter.operatingsystem == 'Debian' || Facter.operatingsystem == 'Ubuntu'
+ if Facter.osfamily == 'Debian'
# set up apt and install packages
shell "apt-get update --fix-missing"
shell "apt-get install -y build-essential wget curl git"
+ # install upgrades
+ Array(CONFIG[:upgrades][:debian]).each do |package|
+ shell "apt-get install -y #{package}"
+ end
shell "wget http://apt.puppetlabs.com/puppetlabs-release-#{Facter.lsbdistcodename}.deb"
puts "Installing Puppet Labs repository..."
shell "dpkg -i puppetlabs-release-#{Facter.lsbdistcodename}.deb"
shell "apt-get update"
shell "rm puppetlabs-release-#{Facter.lsbdistcodename}.deb"
# install mcollective
puts "Installing MCollective..."
shell "apt-get -y install mcollective"
- elsif Facter.operatingsystem == 'CentOS' || Facter.operatingsystem == 'RedHat'
+ elsif Facter.osfamily == 'RedHat'
shell "yum -y install yum-utils wget bind-utils"
+ # install upgrades
+ Array(CONFIG[:upgrades][:redhat]).each do |package|
+ shell "yum -y update #{package}"
+ end
case Facter.operatingsystemmajrelease
when "5"
shell "rpm -ivh #{CONFIG[:puppetlabs_el5_rpm_repo]}"
Facter.architecture == 'X86_64' ? (shell "rpm -ivh #{CONFIG[:rpm_forge_el5_X86_64_repo]}") : (shell "rpm -ivh #{CONFIG[:rpm_forge_el5_i686_repo]}")
- when "6"
+ when "6", "n/a"
+ next unless Facter.operatingsystem == "Amazon"
shell "rpm -ivh #{CONFIG[:puppetlabs_el6_rpm_repo]}"
Facter.architecture == 'X86_64' ? (shell "rpm -ivh #{CONFIG[:rpm_forge_el6_X86_64_repo]}") : (shell "rpm -ivh #{CONFIG[:rpm_forge_el6_i686_repo]}")
shell "yum-config-manager --disable rpmforge-release"
shell "yum-config-manager --enable rpmforge-extras"
else
@@ -55,11 +64,11 @@
FileUtils.cp("#{base_dir}/src/etc/init.d/ec2-run-user-data", "/etc/init.d/ec2-run-user-data") unless File.exist?("/etc/init.d/ec2-run-user-data")
shell "chmod +x /etc/init.d/ec2-run-user-data"
shell "chkconfig --level 345 ec2-run-user-data on"
end
else
- echo "Unsuported OS for automatic agent installation. Exiting now..."
+ puts "Unsuported OS for automatic agent installation. Exiting now..."
exit(1)
end
puts "Installing additions for MCollective and Puppet..."
install_additions
@@ -113,35 +122,36 @@
puts output
end
end
def self.install_additions
- # create puppet group
- shell "groupadd puppet" unless `grep puppet /etc/group`.include? "puppet"
- # create necessary dirs
- [ '/var/log/puppet/',
- '/var/lib/puppet/lib/puppet/indirector',
- '/etc/puppet/modules',
- '/usr/share/mcollective/plugins/mcollective'
- ].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 mcollective plugins
- FileUtils.cp_r(Dir.glob("/usr/libexec/mcollective/mcollective/*"), "/usr/share/mcollective/plugins/mcollective") if File.directory?("/usr/libexec/mcollective/")
- FileUtils.cp_r(Dir.glob("#{base_dir}/mcollective_additions/plugins/v#{CONFIG[:mcollective_version]}/*"), "/usr/share/mcollective/plugins/mcollective")
+ # create puppet group
+ shell "groupadd puppet" unless `grep puppet /etc/group`.include? "puppet"
+ # create necessary dirs
+ [ '/var/log/puppet/',
+ '/var/lib/puppet/lib/puppet/indirector',
+ '/etc/puppet/modules',
+ '/usr/share/mcollective/plugins/mcollective'
+ ].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 mcollective plugins
+ FileUtils.cp_r(Dir.glob("/usr/libexec/mcollective/mcollective/*"), "/usr/share/mcollective/plugins/mcollective") if File.directory?("/usr/libexec/mcollective/")
+ FileUtils.cp_r(Dir.glob("#{base_dir}/mcollective_additions/plugins/v#{CONFIG[:mcollective_version]}/*"), "/usr/share/mcollective/plugins/mcollective")
- # copy mcollective config
- FileUtils.cp_r("#{base_dir}/mcollective_additions/server.cfg", "/etc/mcollective", :remove_destination => true)
+ # copy mcollective config
+ FileUtils.cp_r("#{base_dir}/mcollective_additions/server.cfg", "/etc/mcollective", :remove_destination => true)
- # copy compatible mcollective init script
- FileUtils.cp_r("#{base_dir}/mcollective_additions/#{Facter.osfamily.downcase}.mcollective.init", "/etc/init.d/mcollective", :remove_destination => true)
- end
+ # copy compatible mcollective init script
+ FileUtils.cp_r("#{base_dir}/mcollective_additions/#{Facter.osfamily.downcase}.mcollective.init", "/etc/init.d/mcollective", :remove_destination => true)
+ shell "chmod +x /etc/init.d/mcollective"
+ end
- def self.base_dir
- File.expand_path('../..', File.dirname(__FILE__))
- end
+ def self.base_dir
+ File.expand_path('../..', File.dirname(__FILE__))
+ end
end
end
end
\ No newline at end of file