Added passenger support. Partialy 1
This commit is contained in:
116
func_ruby/ext-modules/puppet_installer.mod
Normal file
116
func_ruby/ext-modules/puppet_installer.mod
Normal file
@@ -0,0 +1,116 @@
|
||||
#!/opt/brepo/ruby33/bin/ruby
|
||||
|
||||
require "shell"
|
||||
require "date"
|
||||
|
||||
class PuppetWorker < Kernel::ModuleCoreWorker
|
||||
MODULE_ID = "puppet_installer"
|
||||
|
||||
def info
|
||||
{
|
||||
ID: 1,
|
||||
NAME: MODULE_ID,
|
||||
DESCR: "Added puppet support, needed for another modules",
|
||||
REQ: "",
|
||||
}
|
||||
end
|
||||
|
||||
def enable
|
||||
log_file = get_log
|
||||
date = DateTime.now
|
||||
bkp_name = date.strftime("%Y_%m_%d_%H_%M_%S")
|
||||
if !check
|
||||
inf = info
|
||||
log("Req error, needed #{inf[:REQ]}")
|
||||
"Req error, needed #{inf[:REQ]}"
|
||||
else
|
||||
Shell.def_system_command("dnf", "/usr/bin/dnf")
|
||||
Shell.def_system_command("gem", "/usr/bin/gem")
|
||||
Shell.verbose = true
|
||||
Shell.debug = false
|
||||
sh = Shell.new
|
||||
begin
|
||||
%x( /usr/bin/rpm -q puppet )
|
||||
unless $?.success?
|
||||
log("install puppet packages")
|
||||
sh.transact do
|
||||
dnf("install", "-y", "puppet", "ruby", "rubygems", "puppet-stdlib") > log_file
|
||||
gem("cleanup", "thor") > log_file
|
||||
end
|
||||
else
|
||||
log("puppet installed")
|
||||
end
|
||||
log("prepare puppet configuration")
|
||||
if File.exist?("/etc/puppet/puppet.conf")
|
||||
File.rename("/etc/puppet/puppet.conf", "/etc/puppet/puppet.conf.#{bkp_name}")
|
||||
end
|
||||
puppet_conf = <<~CONF
|
||||
[main]
|
||||
confdir=/etc/puppet
|
||||
logdir=/var/log/puppet
|
||||
vardir=/var/lib/puppet
|
||||
ssldir=/var/lib/puppet/ssl
|
||||
rundir=/var/run/puppet
|
||||
factpath=$confdir/facter
|
||||
environmentpath=$confdir/environments
|
||||
basemodulepath=/usr/share/puppet/modules
|
||||
default_manifest=$confdir/manifests
|
||||
environment_timeout = unlimited
|
||||
manifests_path =$confdir/manifests
|
||||
CONF
|
||||
File.open("/etc/puppet/puppet.conf", "w") do |f|
|
||||
f.puts(puppet_conf)
|
||||
end
|
||||
log("prepare hiera configuration")
|
||||
if File.exist?("/etc/puppet/hiera.yaml")
|
||||
File.rename("/etc/puppet/hiera.yaml", "/etc/puppet/hiera.yaml.#{bkp_name}")
|
||||
end
|
||||
hiera_conf = <<~CONF
|
||||
---
|
||||
version: 5
|
||||
hierarchy:
|
||||
- name: "yaml"
|
||||
datadir: /tmp/puppet/hieradata
|
||||
# data is staged to a local directory by the puppet-manifest-apply.sh script
|
||||
data_hash: yaml_data
|
||||
paths:
|
||||
- runtime.yaml
|
||||
- host.yaml
|
||||
- secure_system.yaml
|
||||
- system.yaml
|
||||
- secure_static.yaml
|
||||
- static.yaml
|
||||
- personality.yaml
|
||||
- global.yaml
|
||||
CONF
|
||||
File.open("/etc/puppet/hiera.yaml", "w") do |f|
|
||||
f.puts(hiera_conf)
|
||||
end
|
||||
log("create manifests directory")
|
||||
sh.transact do
|
||||
((mkdir("/etc/puppet/manifests")) > log_file) unless File.exist?("/etc/puppet/manifests")
|
||||
end
|
||||
super
|
||||
rescue => e
|
||||
log("module installation error #{e.message} #{e.backtrace.first}")
|
||||
"module installation error. See log #{log_file}"
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
implements IPluginInterface
|
||||
end
|
||||
|
||||
module PuppetModule
|
||||
def get_object
|
||||
Proc.new { PuppetWorker.new }
|
||||
end
|
||||
|
||||
module_function :get_object
|
||||
end
|
||||
|
||||
class Kernel::PluginConfiguration
|
||||
include PuppetModule
|
||||
|
||||
@@loaded_plugins[PuppetWorker::MODULE_ID] = PuppetModule.get_object
|
||||
end
|
||||
Reference in New Issue
Block a user