Agents do the actual work of deploying components and so relieve the server from the task, making large deployments that involve thousands of targets possible. Usually, an agent runs on the same host on which the resources it handles are located. A single agent can handle all the resources on its host. If a host has several resources, an agent process is started separately for each one. Depending on the number of hosts in an environment, a deployment might require many agents.
Agents are installed with the batch files that are provided with the installation files, see Installing agents from the command line. You can install agents on UNIX systems with the web application. Agents are run with the batch files that are included with the installation package.
After an installed agent starts, the agent opens a socket connection to the IBM UrbanCode Deploy server (securable by configuring SSL for server-agent communication) based on the installation information. Agents on networks other than the one where the server is located might need to open a firewall to establish connection. After communication is established, the agent will be visible in the IBM UrbanCode Deploy web application where it can be configured. Active agents, regardless of operating system, can be upgraded with the web application.
Agent configuration consists of assigning an agent to at least one environment; agents can be assigned to multiple environments. If an agent is assigned to several environments, it can do work on behalf of all of them.
If you create a resource template instead of importing a resource template from the cloud, you can specify an Agent Name Pattern for any agent prototype that you add to the resource template. You might use an agent name pattern if you have a system for provisioning agents that is not cloud-based. After you create an environment from an application blueprint that is based on this resource template, agents that match the name pattern are mapped to the corresponding agent prototypes in the blueprint. For any agent prototypes that do not match existing agents, an entry is created in the environment for an agent with the expected name. When you specify an agent name pattern, you can use the following special properties as variables that represent the application name and the environment name: ${p:application.name} and ${p:environment.name}.