Configure orchestration
After installing PE, you can change some default
settings to further configure the orchestrator and pe-orchestration-services
.
Orchestrator and pe-orchestration-services
parameters
These are some optional parameters you can use to configure the
behavior of the orchestrator and the pe-orchestration-services
service.
You can modify these profile
class parameters in the
Puppet Enterprise (PE) console on the
Classes tab for the PE
Orchestrator infrastructure node group.
puppet_enterprise::profile::agent::pxp_enabled
- Boolean used to enable or disable the Puppet Execution Protocol (PXP) service.
puppet_enterprise::profile::bolt_server::concurrency
- An integer that determines the maximum number of simultaneous task or plan
requests the orchestrator can make to
bolt-server
. puppet_enterprise::profile::orchestrator::allowed_pcp_status_requests
- An integer that defines how many times an orchestrator job allows status
requests to time out before a job is considered failed. Status requests wait
12 seconds between timeouts, so multiply the value of the
allowed_pcp_status_requests
by 12 to determine how many seconds the orchestrator waits on targets that aren’t responding to status requests. puppet_enterprise::profile::orchestrator::default_plan_timeout
- An integer specifying how long a plan can run before being force stopped.
This represents a timeout limit for the entire plan, not individual plan
jobs.CAUTION: Force stopping plans can result in incomplete Puppet runs, partial configuration changes, and other issues. When setting the default timeout limit, consider average plan scope, run time, and your infrastructure's capacity (such as concurrency limits).
puppet_enterprise::profile::orchestrator::default_task_node_timeout
- An integer specifying how many seconds a task can run on a single node
before being force stopped.CAUTION: Force stopping tasks can result in incomplete Puppet runs, partial configuration changes, and other issues. When setting the default timeout limit, consider average task scope, run time, and your infrastructure's capacity (such as concurrency limits).
puppet_enterprise::profile::orchestrator::global_concurrent_compiles
- An integer specifying how many concurrent compile requests can be outstanding to the primary server across all orchestrator jobs.
puppet_enterprise::profile::orchestrator::java_args
- Specifies the Java heap size, which is the amount of JVM memory that each Java process is allowed to request from the OS for orchestration services to use.
puppet_enterprise::profile::orchestrator::job_prune_threshold
- An integer of
2
or greater, which specifies the number of days to retain job reports. puppet_enterprise::profile::orchestrator::jruby_max_active_instances
- An integer that determines the maximum number of JRuby instances that the
orchestrator creates to execute plans. Because each plan uses one JRuby to
run, this value is effectively the maximum number of concurrent plans.
Setting the orchestrator heap size (
java_args
) automatically sets thejruby_max_active_instances
using the formula$java_args ÷ 1024
. If the result is less than one, the default is one JRuby instance. puppet_enterprise::profile::orchestrator::pcp_timeout
- An integer representing how long, in seconds, an agent can spend attempting to connect to a PCP broker during a Puppet run triggered by the orchestrator. If the agent can’t connect to the broker in the specified time frame, the Puppet run times out.
puppet_enterprise::profile::orchestrator::run_service
- A Boolean used to enable (
true
) or disable (false
) orchestration services. puppet_enterprise::profile::orchestrator::task_concurrency
- An integer representing the number of simultaneous task or plan actions that can run at the same time. All task and plan actions are limited by this concurrency limit regardless of transport type (WinRM, SSH, PCP).
puppet_enterprise::profile::plan_executor::versioned_deploys
- A Boolean used for Running plans alongside code deployments.
For information about how the orchestrator works, what you can do with it, and additional parameters and configuration options, refer to Orchestrating Puppet runs, tasks, and plans.
For PXP agent parameters, refer to Configure PXP agent parameters.
Configure PXP agent parameters
Puppet Execution Protocol (PXP) is a message
format used to request task execution and receive task statuses. PXP agents runs the PXP service. You
can configure pxp_agent
parameters with Hiera or in the PE
console.
puppet_enterprise::profile::agent::pxp_enabled
- Boolean used to enable or disable the Puppet Execution Protocol (PXP) service.
puppet_enterprise::pxp_agent::ping_interval
- An integer specifying the frequency, in seconds, that PXP agents ping PCP brokers. If the broker doesn't respond, the agent tries to reconnect.
puppet_enterprise::pxp_agent::pxp_logfile
- The path, as a string, to the PXP agent log file. This file can be used to debug orchestrator issues.
puppet_enterprise::pxp_agent::spool_dir_purge_ttl
- A string representing the amount of time to retain records of Puppet or task runs on agents.
puppet_enterprise::pxp_agent::task_cache_dir_purge_ttl
- A string representing the amount of time that task files are cached after use.
puppet_enterprise::pxp_agent::broker_proxy
- Optional. Set a proxy URI to use to connect to the
pcp-broker
to listen for task and Puppet run requests. puppet_enterprise::pxp_agent::master_proxy
- Optional. Set a proxy URI to use to connect to the primary server to download task implementations.
puppet_enterprise::pcp_max_message_size_mb
- An integer specifying the maximum message size, in MB, for
pcp_broker
,pxp_agent
, and the orchestrator.
Manage ARP table overflow
In larger deployments that use the PCP broker, you might encounter Address Resolution Protocol (ARP) table overflows.
[root@s1 peadmin]# tail -f /var/log/messages
Aug 10 22:42:36 s1 kernel: Neighbour table overflow.
Aug 10 22:42:36 s1 kernel: Neighbour table overflow.
Aug 10 22:42:36 s1 kernel: Neighbour table overflow.
To resolve
this issue, you need to increase sysctl
settings
related to ARP tables.
# Set max table size
net.ipv6.neigh.default.gc_thresh3=4096
net.ipv4.neigh.default.gc_thresh3=4096
# Start aggressively clearing the table at this threshold
net.ipv6.neigh.default.gc_thresh2=2048
net.ipv4.neigh.default.gc_thresh2=2048
# Don't clear any entries until this threshold
net.ipv6.neigh.default.gc_thresh1=1024
net.ipv4.neigh.default.gc_thresh1=1024