> For the complete documentation index, see [llms.txt](https://docs.reorc.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.reorc.com/cn-reorc-help-center/she-zhi-yu-bu-shu/an-zhuang-reorcagent.md).

# 安装 Reorc-agent

Reorc 的数据面（Data Plane）由多个 Worker Hosts 构成，用于运行由控制面（Control Plane）协调的数据任务。

每个 Worker 上都包含一个称为 Reorc-agent 的服务，它与控制面通信，并管理 Worker 上的执行环境。设置 Worker 的规则如下：

* 可设置多个 Workers 以实现横向扩展。
* &#x20;Workers 可以安装在不同的网络位置。
* 专用于某个环境的 Workers 之间必须能够相互通信。因此，建议将相同环境的 Workers 放置在同一局域网络中，以最大程度地稳定连接并降低延迟。

本指南将向您展示如何设置 Reorc Agent。

## 要求

您的 Worker Hosts 需满足以下要求：

**硬件：**

根据实际使用情况，您可以参考以下配置范围，以优化Reorc的性能表现。

<table data-full-width="true"><thead><tr><th width="161"></th><th>Worker 数量</th><th>CPU（核心数 / Worker）</th><th>内存（GB/ Worker）</th><th>磁盘（GB/ Worker）</th></tr></thead><tbody><tr><td>最低配置</td><td>1</td><td>2</td><td>8</td><td>20</td></tr><tr><td>推荐配置</td><td>2+</td><td>4</td><td>16</td><td>100</td></tr></tbody></table>

**软件：**

* 操作系统：Linux（已测试 RHEL 和 Ubuntu ）。
* Python：3.9+，建议使用更新版本，并在可行情况下使用虚拟环境。
* [Docker](https://docs.docker.com/engine/) : 20.10.0+，需安装 Docker Compose。

{% hint style="info" %}
确保运行 Reorc Agent 的用户有权限访问 Docker CLI。可以使用以下命令授予用户权限。在修改用户组后，可能需要注销并重新登录终端会话。

```bash
sudo usermod -aG docker $USER 
```

{% endhint %}

## 设置 Reorc Agent

请按照以下步骤进行操作：

1. 在 Reorc 左侧边栏中，点&#x51FB;**“组织/ Organization”**&#x56FE;标并选&#x62E9;**“环境和 Workers/ Environment & Workers”**。
2. 点&#x51FB;**“部署 Agent/ Deploy Agent”**&#x5E76;按照屏幕上的指示完成 Agent 的部署。

   或者，您也可以按照以下步骤操作。

<details>

<summary>在命令行界面（CLI）中安装 Reorc Agent</summary>

1. 在 Worker Host 上：安装 Agent 包。

```bash
pip install -U reorc-agent
```

您可以通过运行以下命令来验证安装是否成功： `reorc version`

2. 在 Worker Host 上：将 Host 注册到控制面。

```bash
reorc login
```

3. &#x5728;**“环境和 Workers/ Environments & workers”**&#x9875;面中，点&#x51FB;**“部署 Agent/ Deploy Agent”**，复制API密钥，并粘贴到 Host 上。
4. 在 Worker Host 上：启动 Agent，Agent 将持续向控制面发送心跳信号。

```bash
reorc agent start
```

</details>

3. 刷新页面以查看新部署的 Host，状态应显示&#x4E3A;**“在线/ Online”**。
4. 将 Agent 分配到环境。

   当 Agent 运行并显&#x793A;**“在线/ Online”**&#x72B6;态后，点&#x51FB;**“操作/ action”**>**“加入环境/ Join Environment”**，选择要分配的环境。当 Agent 成功加入环境后，您应会看到状态变&#x4E3A;**“活动中/ Active”**。

{% hint style="info" %}
**注意事项**

* `reorc agent start` 命令会在前台启动 Agent ，当终端会话关闭时，Agent 也会终止。对于生产部署，您应让 Agent 在后台运行。更多详细信息，请参考： [在后台运行 Agent](#zai-hou-tai-yun-xing-agent)。
* `dev` 和`prod` 环境必须至少各有一个 Agent 在运行。
  {% endhint %}

## Agent 的操作

当 Agent 启动并运行后，您可以执行一些关键操作。

点击 Agent 的 ***操作/action*** 按钮即可：

<figure><img src="/files/x003EPa4QxnpEsOcrQbz" alt=""><figcaption></figcaption></figure>

可以执行以下操作：

* **重启服务：**&#x91CD;启 Agent 服务，重启后 Agent 仍会加入环境。
* **停止服务：**&#x505C;止 Agent 服务， Agent 将变为非活动状态。
* **离开环境：**&#x5C06; Agent 服务从当前环境中移除。

## 在后台运行 Agent&#x20;

有多种方式可以将 Agent 在后台运行，例如，使用 [systemd](https://systemd.io/) 或 [Supervisor](http://supervisord.org) 等工具。

<details>

<summary>systemd</summary>

1. 创建配置文件

创建 `/etc/systemd/system/reorc-agent.service` 文件，并添加以下内容：

```systemd
[Unit]
Description=ReOrc Agent Service
After=network.target

[Service]
User=<os_user>
Group=<os_user>
ExecStart=/path/to/python/bin/reorc agent start
Restart=on-failure
Environment=PYTHONUNBUFFERED=1
StandardOutput=append:/var/log/reorc/agent.log
StandardError=append:/var/log/reorc/agent.log

[Install]
WantedBy=multi-user.target
```

2. 准备日志文件夹和权限

```bash
sudo mkdir -p /var/log/reorc
sudo chown <os_user>:<os_user> /var/log/reorc
```

3. 启动服务

```bash
sudo systemctl daemon-reload
sudo systemctl start reorc-agent
sudo systemctl enable reorc-agent
```

</details>

<details>

<summary>Supervisor</summary>

**安装 Supervisor**

1. 安装 Supervisor

```bash
# Install on Ubuntu 
sudo apt install supervisor

# Install on CentOS (RHEL)
sudo dnf install supervisor

# or
sudo yum install supervisor
```

2. 创建用户组和用户

```bash
sudo groupadd supervisor
sudo usermod -aG supervisor $USER
```

3. 创建配置文件

安装后，`/etc/supervisord.conf` 中应该已经有一个配置文件。做一些修改以允许`supervisor` 中的用户运行访问 supervisord。

```editorconfig
[unix_http_server]
file=/run/supervisor/supervisor.sock   ; (the path to the socket file)
chmod=770
chown=root:supervisor
```

4. 启用并启动 supervisord

```bash
sudo systemctl enable supervisord
sudo systemctl start supervisord
```

现在，您应该能够运行 `supervisorctl` （supervisord 的控制命令行界面）。

**添加 reorc-agent**

1. 将一个配置文件添加到 `/etc/supervisord.d/reorc-agent.ini`，其内容如下：

```editorconfig
[program:reorc-agent]
command = /path/to/python/bin/reorc agent start
autorestart = true
stopasgroup = true
killasgroup = true
umask = 000
user = <os_user>
redirect_stderr = true
stdout_logfile = /var/log/reorc/agent.log
```

请注意：

* 将 `command` 替换为 `reorc` 二进制文件的绝对路径。通常是 Python 环境（或虚拟环境）的 `bin` 文件夹。
* 替换 `user`。
* 替换日志路径 `stdout_logfile`，用户应该具有对该文件夹的写访问权限。

2. 通过 `supervisorctl` 管理进程

```bash
# Reload config and add/remove as necessary, and will restart affected programs
supervisorctl update

# start, stop, and restart reorc-agent
supervisorctl start reorc-agent
supervisorctl stop reorc-agent
supervisorctl restart reorc-agent
```

</details>

## 升级 Agent&#x20;

始终建议保持 Reorc Agent 的更新。

要升级 Agent ，请按照以下步骤操作：

1. 停止 Agent 服务

   根据您管理服务的方式，您可能需要运行以下命令之一来停止该进程：

```bash
# if managed by Systemd
sudo systemctl stop reorc-agent

# if managed by Supervisor
supervisorctl stop reorc-agent
```

2. 升级并重新登录

```bash
# Upgrade to the latest version
pip install -U reorc-agent

reorc login
```

3. 启动 Agent&#x20;

```bash
# if managed by Systemd
sudo systemctl start reorc-agent

# if managed by Supervisor
supervisorctl start reorc-agent
```
