Skip to content

Latest commit

 

History

History
66 lines (51 loc) · 2.98 KB

old_versions_of_peadm.md

File metadata and controls

66 lines (51 loc) · 2.98 KB

Old Versions of Puppet Enterprise (pe) Administration (adm) Module

Prior to the 1.0.0 release of peadm, the pp_application and pp_cluster trusted facts were used to identify peadm server roles and availability groups. In order to avoid conflict with customer use of these trusted facts, in 1.0.0 peadm switched to using its own custom OID trusted facts for the purpose instead.

Puppet Enterprise systems deployed with peadm 1.0.0 will use the correct trusted facts, but any system deployed with peadm 0.5.x or older will still be relying on pp_application and pp_cluster. It is recommended that for these systems, you either:

  • Continue to use an older version of peadm to perform upgrades
  • Deploy new PE infrastructure using a 1.0.0 version of peadm or newer
  • Use the peadm::misc::upgrade_trusted_facts plan to re-issue certificates for each server to include the new custom OID trusted facts

Utilities are provided to perform a conversion, but expect them to be rough and require some tinkering if you choose this option.

Convert an Existing Deployment

Prepare to run the plan against all servers in the PE infrastructure, using a params.json file such as this one:

{
  "master_host": "pe-xl-core-0.lab1.puppet.vm",
  "targets": [
    "pe-xl-core-0.lab1.puppet.vm",
    "pe-xl-core-1.lab1.puppet.vm",
    "pe-xl-core-2.lab1.puppet.vm",
    "pe-xl-core-3.lab1.puppet.vm",
    "pe-xl-compiler-0.lab1.puppet.vm",
    "pe-xl-compiler-1.lab1.puppet.vm"
  ],
}

Run the plan. Note that this cannot be done using the Orchestrator transport; it must be performed over ssh.

bolt plan run peadm::misc::upgrade_trusted_facts --params @params.json 

To complete the conversion, the PE node groups in the console should be updated to use the new trusted fact OIDs, and not pp_application or pp_cluster anymore. This can be accomplished by re-applying the peadm::setup::node_manager class to the master. Create a file such as the following called new-peadm.pp, replacing all server names listed with the correct ones for your deployment:

file { 'node_manager.yaml':
  ensure  => file,
  noop    => false,
  mode    => '0644',
  path    => Deferred('peadm::node_manager_yaml_location'),
  content => epp('peadm/node_manager.yaml.epp', {
    server => 'pe-xl-core-0.lab1.puppet.vm',,
  }),
}

class { 'peadm::setup::node_manager':
  master_host                    => 'pe-xl-core-0.lab1.puppet.vm',
  master_replica_host            => 'pe-xl-core-2.lab1.puppet.vm',
  puppetdb_database_host         => 'pe-xl-core-1.lab1.puppet.vm',
  puppetdb_database_replica_host => 'pe-xl-core-3.lab1.puppet.vm',
  compiler_pool_address          => 'puppet.lab1.puppet.vm',
  require                        => File['node_manager.yaml'],
}

Finally, use Bolt to apply the configuration to the master.

Tip: use the --noop flag first to validate that the changes which will be made are the changes expected before applying the configuration change.

bolt apply --target pe-xl-core-0.lab1.puppet.vm new-peadm.pp