class base_installation::puppet (
$password_seed = $base_installation::puppet_pass_seed
) inherits base_installation {
File {
mode => "0600",
owner => "root",
group => "root",
}
exec { 'generate_password_seed':
command => "/usr/bin/openssl rand -base64 -out $password_seed 256",
creates => $password_seed,
environment => "RANDFILE=/dev/null",
}
### Until puppet fixes hist gettext-setup gem use
package { 'gem:gettext-setup':
name => "gettext-setup",
ensure => present,
provider => "gem",
install_options => "--no-user-install"
}
file { '/usr/lib/ruby/vendor_ruby/locales/':
ensure => link,
target => "/opt/puppetlabs/puppet/share/locale/",
}
###
file { '/usr/local/sbin/i_puppet_lock':
mode => "0755",
ensure => present,
source => "puppet:///modules/base_installation/scripts/puppet_lock"
}
file { '/usr/local/sbin/i_puppet_reset_and_apply':
mode => "0755",
ensure => present,
source => "puppet:///modules/base_installation/scripts/puppet_reset_and_apply"
}
file { '/usr/local/sbin/i_puppet_report_print':
mode => "0755",
ensure => present,
source => "puppet:///modules/base_installation/scripts/report_print.rb"
}
file { '/usr/local/sbin/puppet_apply':
mode => "0755",
ensure => present,
source => "puppet:///modules/base_installation/scripts/puppet_apply",
}
unless empty(find_file($password_seed)) {
$ldap_password = generate_password(24, $password_seed, "ldap")
$ssha_ldap_seed = generate_password(5, $password_seed, "ldap_seed")
package { 'gem:ruby-ldap':
name => "ruby-ldap",
ensure => present,
provider => "gem",
install_options => "--no-user-install"
}
package { 'gem:xmpp4r':
name => "xmpp4r",
ensure => present,
provider => "gem",
install_options => "--no-user-install"
}
file { $password_seed:
mode => "0600",
}
file { $base_installation::puppet_conf_path:
ensure => directory,
require => [Package["puppet"], Package["gem:xmpp4r"], Package["gem:ruby-ldap"]],
recurse => true,
purge => true,
force => true,
}
$xmpp = lookup("base_installation::notify_xmpp", { "default_value" => {} })
file { "$base_installation::puppet_conf_path/puppet.conf":
content => template("base_installation/puppet/puppet.conf.erb"),
require => File[$base_installation::puppet_conf_path],
}
unless empty($xmpp) {
file { "$base_installation::puppet_conf_path/xmpp.yaml":
content => template("base_installation/puppet/xmpp.yaml.erb"),
require => File[$base_installation::puppet_conf_path],
}
}
if file("$base_installation::puppet_conf_path/host_ldap.info", "/dev/null") != "" and
empty($facts["ldapvar"]) {
fail("LDAP was activated but facts are not available")
}
$ips = lookup("ips", { 'default_value' => undef })
file { "$base_installation::puppet_conf_path/host_ldap.info":
content => template("base_installation/puppet/host_ldap.info.erb"),
require => File[$base_installation::puppet_conf_path],
notify => Notify_refresh["notify-ldap-password"],
}
notify_refresh { "notify-ldap-password":
message => template("base_installation/puppet/host_ldap.info.erb"),
refreshonly => true
}
}
}