Agents

An agent is a lightweight process that runs on a deployment-target host and communicates with the HCL DevOps Deploy (Deploy) server.

Agents are installed as Web agents. Web agents use WebSocket connections and HTTPS for agent-server communication.

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. For example, a test environment might contain a single web server, a single middleware server, and a single database server all running on the same host. A deployment to this environment might have one agent and three separate resources.

Agents have one or more matching agent resources, which represent the agents in the resource tree.

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.

Agents are unobtrusive and secure. Agent communications use SSL encryption and mutual key-based authentication for server-agent communication and employ HTTP, and HTTPS protocols to communicate with the server. See Agent security and communication.

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.

Agent prototypes

An agent prototype is a resource that represents one or more agents that are not yet installed or connected to an environment. You can use agent prototypes in resource templates to represent resources that are not yet available. When you import a resource template from the cloud, an agent prototype is created for each node in the cloud pattern.

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. The agent name pattern can include the properties ${p:application.name} and ${p:environment.name}, but no other properties or wildcards.

Agent IDs

Each agent has a Universally Unique Identifier (UUID) that is created the first time you run an agent and it connects to the Deploy server. You can obtain an agent UUID from the Agents page by selecting an agent. The UUID is managed on the server. There is a one-to-one relationship between an agent name and its UUID. You can use either agent name or its UUID to delete an agent.

In addition to an agent's UUID, an agent has an endpoint ID that is generated as part of an agent installation process. An agent's endpoint ID is found in the conf/agent/installed.properties file of your agent installation directory with the property name locked/agent.id. This endpoint ID is broadcast to the server when the agent connects, and the server uses it to uniquely identify any given agent. When an agent is restarted and reconnects to the Deploy server, the Deploy server identifies the connecting agent by its endpoint ID and matches it with the agent UUID.

In REST API calls, APIs that require the agent's UUID or agent name, accepts the agent's endpoint ID as well.