When you run a remote job on hosts, {Project} selects a remote execution {SmartProxy} for each host by checking the host interfaces and subnets and balancing load across {SmartProxies}.
For custom Ansible roles that you create, or roles that you download, you must install the package containing the roles on your {SmartProxyServer}. Before you can use Ansible roles, you must import the roles into {Project} from the {SmartProxy} where they are installed.
-
{Project} finds the host’s interfaces that have the Remote execution checkbox selected.
-
{Project} finds the subnets of these interfaces.
-
{Project} finds remote execution {SmartProxies} assigned to these subnets.
-
From this set of {SmartProxies}, {Project} selects the {SmartProxy} that has the least number of running jobs. By doing this, {Project} ensures that the jobs load is balanced between remote execution {SmartProxies}.
If you have enabled Prefer registered through {SmartProxy} for remote execution, {Project} runs the REX job by using the {SmartProxy} to which the host is registered.
By default, Prefer registered through {SmartProxy} for remote execution is set to No.
To enable it, in the {ProjectWebUI}, navigate to Administer > Settings, and on the Content tab, set Prefer registered through {SmartProxy} for remote execution to Yes.
This ensures that {Project} performs REX jobs on hosts by the {SmartProxy} to which they are registered to.
If {Project} does not find a remote execution {SmartProxy} at this stage, and if the Fallback to Any {SmartProxy} setting is enabled, {Project} adds another set of {SmartProxies} to select the remote execution {SmartProxy} from. {Project} selects the most lightly loaded {SmartProxy} from the following types of {SmartProxies} that are assigned to the host:
-
DHCP, DNS and TFTP {SmartProxies} assigned to the host’s subnets
-
DNS {SmartProxy} assigned to the host’s domain
-
Realm {SmartProxy} assigned to the host’s realm
-
Puppet server {SmartProxy}
-
Puppet CA {SmartProxy}
-
OpenSCAP {SmartProxy}
If {Project} does not find a remote execution {SmartProxy} at this stage, and if the Enable Global {SmartProxy} setting is enabled, {Project} selects the most lightly loaded remote execution {SmartProxy} from the set of all {SmartProxies} in the host’s organization and location to execute a remote job.