Revision e7968a9d
Added by Michael Moll about 7 years ago
config/settings.d/puppetca.yml.example | ||
---|---|---|
:enabled: false
|
||
|
||
#:ssldir: /var/lib/puppet/ssl
|
||
#:puppetdir: /etc/puppet
|
||
#:autosignfile: /etc/puppet/autosign.conf
|
||
#:puppetca_use_sudo: true
|
||
#:sudo_command: /usr/bin/sudo
|
extra/migrations/20170523000000_migrate_autosign_setting.rb | ||
---|---|---|
require 'yaml'
|
||
|
||
class MigrateAutosignSetting < ::Proxy::Migration
|
||
def migrate
|
||
puppetca_config = path(src_dir, "settings.d", "puppetca.yml")
|
||
if !File.exist?(puppetca_config)
|
||
duplicate_original_configuration
|
||
return
|
||
end
|
||
|
||
to_migrate = YAML.load_file(puppetca_config)
|
||
output = migrate_autosign_configuration(to_migrate)
|
||
copy_original_configuration_except(path("settings.d", "puppetca.yml"))
|
||
write_to_files(output)
|
||
end
|
||
|
||
def remap_parameter(aparameter, avalue)
|
||
module_name = :puppetca
|
||
|
||
if aparameter == :puppetdir
|
||
parameter_name = :autosignfile
|
||
parameter_value = avalue + '/autosign.conf'
|
||
else
|
||
parameter_name = aparameter
|
||
parameter_value = avalue
|
||
end
|
||
|
||
[module_name, parameter_name, parameter_value]
|
||
end
|
||
|
||
def migrate_autosign_configuration(to_migrate)
|
||
migrated = Hash.new { |h,k| h[k] = Hash.new }
|
||
to_migrate.each do |option, value|
|
||
module_name, parameter_name, parameter_value = remap_parameter(option, value)
|
||
migrated[module_name][parameter_name] = parameter_value
|
||
end
|
||
migrated
|
||
end
|
||
|
||
def write_to_files(output)
|
||
output.keys.each do |m|
|
||
next if output[m].empty? || m == :unknown
|
||
File.open(path(dst_dir, "settings.d", "#{m}.yml"),'w') do |f|
|
||
f.write(strip_ruby_symbol_encoding(output[m].to_yaml))
|
||
end
|
||
end
|
||
end
|
||
end
|
modules/puppetca/puppetca_main.rb | ||
---|---|---|
Proxy::PuppetCa::Plugin.settings.ssldir
|
||
end
|
||
|
||
def puppetdir
|
||
Proxy::PuppetCa::Plugin.settings.puppetdir
|
||
end
|
||
|
||
def autosign_file
|
||
"#{puppetdir}/autosign.conf"
|
||
Proxy::PuppetCa::Plugin.settings.autosignfile
|
||
end
|
||
|
||
# parse the puppetca --list output
|
modules/puppetca/puppetca_plugin.rb | ||
---|---|---|
http_rackup_path File.expand_path("http_config.ru", File.expand_path("../", __FILE__))
|
||
https_rackup_path File.expand_path("http_config.ru", File.expand_path("../", __FILE__))
|
||
|
||
default_settings :ssldir => '/var/lib/puppet/ssl', :puppetdir => '/etc/puppet'
|
||
default_settings :ssldir => '/var/lib/puppet/ssl', :autosignfile => '/etc/puppet/autosign.conf'
|
||
|
||
plugin :puppetca, ::Proxy::VERSION
|
||
end
|
test/migrations/autosign_migration_test.rb | ||
---|---|---|
require 'test_helper'
|
||
|
||
require File.join(File.dirname(__FILE__),'../../extra/migrate_settings')
|
||
::Proxy::Migration.inject_migrations_instance(::Proxy::Migrations.new("dummy"))
|
||
require File.join(File.dirname(__FILE__),'../../extra/migrations/20170523000000_migrate_autosign_setting.rb')
|
||
|
||
class ProxyAutosignMigrationTest < Test::Unit::TestCase
|
||
def setup
|
||
@migration = MigrateAutosignSetting.new("/tmp")
|
||
end
|
||
|
||
def test_autosign_parameter_remapping
|
||
assert_equal [:puppetca, :autosignfile, '/etc/puppet/autosign.conf'], @migration.remap_parameter(:puppetdir, '/etc/puppet')
|
||
end
|
||
end
|
||
|
test/puppetca/puppetca_config_test.rb | ||
---|---|---|
def test_omitted_settings_have_default_values
|
||
Proxy::PuppetCa::Plugin.load_test_settings({})
|
||
assert_equal '/var/lib/puppet/ssl', Proxy::PuppetCa::Plugin.settings.ssldir
|
||
assert_equal '/etc/puppet', Proxy::PuppetCa::Plugin.settings.puppetdir
|
||
assert_equal '/etc/puppet/autosign.conf', Proxy::PuppetCa::Plugin.settings.autosignfile
|
||
end
|
||
end
|
Also available in: Unified diff
Fixes #6945 - use autosign path for puppetca