robot
2021.10
false
Robot User Guide
Last updated Oct 25, 2024

Linux Robots

Using Robots in Linux environments allows you to run unattended automations in Docker containers and provides a faster experience and an easier way of scaling up your deployment.

The Linux robot runs processes developed as cross-platform in Studio that do not require UI Interaction.

Prerequisites

Developing Cross-Platform Automations

Linux robots are only able to run unattended automations that do not require user interface. For this, when creating an automation, make sure to select Cross-platform.

This way, only cross-platform activities are shown, while unsupported ones are hidden.



The default activities packages for cross-platform projects are:

  • UiPath.System.Activities
  • UiPath.WebAPI.Activities

Deployment

In order to deploy unattended robots in a Linux environment, follow the steps below:

Orchestrator Configuration

Create an unattended robot in orchestrator, as shown in this document, then save the machine key so it can be used later.

Client Machine

  1. Open a command line terminal and get the docker image using the following command:

    docker pull registry.uipath.com/robot/runtimedocker pull registry.uipath.com/robot/runtime:<tag>docker pull registry.uipath.com/robot/runtimedocker pull registry.uipath.com/robot/runtime:<tag>
  2. Start the robot image and connect the Robot to Orchestrator using the command below:

    docker run -e LICENSE_AGREEMENT=accept -e ORCHESTRATOR_URL="https://cloud.uipath.com/organization/tentant/orchestrator_" -e MACHINE_KEY="$KEY"-tid registry.uipath.com/robot/runtimedocker run -e LICENSE_AGREEMENT=accept -e ORCHESTRATOR_URL="https://cloud.uipath.com/organization/tentant/orchestrator_" -e MACHINE_KEY="$KEY" -tid registry.uipath.com/robot/runtime:<tag>docker run -e LICENSE_AGREEMENT=accept -e ORCHESTRATOR_URL="https://cloud.uipath.com/organization/tentant/orchestrator_" -e MACHINE_KEY="$KEY"-tid registry.uipath.com/robot/runtimedocker run -e LICENSE_AGREEMENT=accept -e ORCHESTRATOR_URL="https://cloud.uipath.com/organization/tentant/orchestrator_" -e MACHINE_KEY="$KEY" -tid registry.uipath.com/robot/runtime:<tag>
    Note: To retrieve or start a specific version of the robot, replace the <tag> parameter with the actual version from the Docker Image Tags column in the table below:

    Robot Version

    Docker Image Tags

    2021.10

    21.10.7

    21.10.6

    21.10.5

    21.10.3

    Not using any tag retrieves the most recent enterprise patch for the latest enterprise version.

    Important: If you encounter issues connecting the robot to Orchestrator, this might be caused by a host machine configuration (e.g. firewall rules). To resolve this, add a specific DNS server in the command.
    Example: docker run --dns="1.1.1.1" -e LICENSE_AGREEMENT=accept -e ORCHESTRATOR_URL="https://cloud.uipath.com/organization/tentant/orchestrator_" -e MACHINE_KEY="$KEY" -tid registry.uipath.com/robot/runtime
    Where 1.1.1.1 refers to the public DNS resolver from Cloudflare. This can be any DNS resolver that can resolve the SignalR Hub.
    Important:
    • To successfully start the robot, you must accept the license agreement by adding the -e LICENSE_AGREEMENT=accept parameter to the command.
    • Every time you run the command presented in step 2, a new robot is spawned in Orchestrator.
  3. To see the status of your robots on the machine use the following command:

    docker ps -adocker ps -a
  4. To disconnect a robot use the command below:

    docker stop {container_id}docker stop {container_id}
    Important: Using docker kill container_id stops the robot on the machine but does not disconnect it from Orchestrator.
  5. To reconnect a specific robot use the command below:

    docker start {container_id}docker start {container_id}

Logging

If you need to persist log files beyond the lifecycle of the container instance, use the following command:

docker run -e LICENSE_AGREEMENT=accept -e MACHINE_KEY="{machine_key}" -e ORCHESTRATOR_URL="https://cloud.uipath.com/organization/tentant/orchestrator_" -v C:\Users\user.name\Desktop\logs:/root/.local/share/UiPath/Logs/ -ti registry.uipath.com/robot/runtimedocker run -e LICENSE_AGREEMENT=accept -e MACHINE_KEY="{machine_key}" -e ORCHESTRATOR_URL="https://cloud.uipath.com/organization/tentant/orchestrator_" -v C:\Users\user.name\Desktop\logs:/root/.local/share/UiPath/Logs/ -ti registry.uipath.com/robot/runtime
Note: The Robot Linux image is based on the Alpine Linux version of the mcr.microsoft.com/dotnet/runtime. All files required by the application are placed in the /root/application directory.

Running Jobs on Linux Robots

The procedure for running an unattended job on Linux robots is identical to the one for Windows.

Remote Debugging

To test your process, you can enable debug mode using the following command:

docker run -e LICENSE_AGREEMENT=accept -e DEBUG_SESSION=true -ti -p8573:8573 registry.uipath.com/robot/runtimedocker run -e LICENSE_AGREEMENT=accept -e DEBUG_SESSION=true -ti -p8573:8573 registry.uipath.com/robot/runtime
The command starts a new Robot Container with the Debug feature enabled running on port 8573. After the container is started, you can connect to the docker image using the host machine ip and the port 8573 making use of the Studio Remote Debugging feature.

If you want to debug an already started Robot container you can use the unattended robot connection feature with a robot container connected to the orchestrator.

Was this page helpful?

Get The Help You Need
Learning RPA - Automation Courses
UiPath Community Forum
Uipath Logo White
Trust and Security
© 2005-2024 UiPath. All rights reserved.