Ponos agent
| This feature is only available for Enterprise Edition customers. |
If your setup requires Machine Learning process, you’ll need at least one Ponos Agent on a dedicated server.
Basic Docker deployment
The setup of this kind of server is easier, as it only requires to run the agent (from Docker image registry.gitlab.teklia.com/arkindex/ponos-agent) and configure it. The tasks will then be triggered by the agent automatically.
Get farm attributes
Each Ponos agent belongs to a farm. To allow agents to register themselves on an Arkindex instance without requiring manual intervention from an administrator, agents use a farm’s seed. Multiple agents can register using the same seed, so manual intervention is only necessary when creating a new farm.
You can create and manage farms using the administration interface, under the section . To run a Ponos agent, you can either create a new farm or use an existing one. If you create a new farm, you will need to:
-
provide a name, which will be shown to users when they create processes;
-
give users guest access to the farm, to allow them to run processes using agents from this farm.
Once you have created or chosen a farm, you can click on its ID in the list to view its details. You will find two values that you will need in order to run a Ponos agent:
- ID
-
The UUID for this farm.
- Seed
-
A random hexadecimal string generated when a farm is created. Updating this value does not immediately disconnect existing agents, but restarting them or registering new agents will fail until the configuration is updated.
| Farm seeds are sensitive values. The seeds could be used to take authentication tokens and secrets from tasks, then impersonate users. In production deployments, these values should be stored securely, for example by limiting permissions on configuration files, or encrypting it before storing it in a source control repository. |
Create a configuration file
The Ponos agent will need a YAML configuration file to run. The farm information you retrieved from the administration interface will be provided there. For this tutorial, we will name it agent.yml.
---
# Save as agent.yml
url: https://ark.localhost/
farm_id: XXXXX
seed: YYYYY
data_dir: /data
Run the agent
You can then run the agent as:
docker run \
--name=ponos \
-v /var/run/docker.sock:/var/run/docker.sock \
-v ./agent.yml:/etc/ponos/agent.yml:ro \
-v ponos_data:/data \
registry.gitlab.teklia.com/arkindex/ponos-agent:X.Y.Z
Please note that the agent requires a write access on the local Docker socket in order to create new containers that will run the tasks.
The ponos_data docker volume is not required, but will allow to retrieve debug logs outside of the agent container.
Advanced deployment
To learn more about configuring and deploying Ponos agents with Docker, Kubernetes or other technologies, see the Ponos agent documentation.