automation-suite
2024.10
true
重要 :
请注意此内容已使用机器翻译进行了部分本地化。 新发布内容的本地化可能需要 1-2 周的时间才能完成。
UiPath logo, featuring letters U and I in white

EKS/AKS 上的 Automation Suite 安装指南

上次更新日期 2024年12月18日

Configuring input.json

input.json 文件允许您配置要部署的 UiPath™ 产品、应用于所选产品的参数、设置和首选项,以及云基础架构的设置。您必须更新此文件以更改默认值,并为集群使用任何高级配置。
备注:

某些产品可能具有依赖项。 有关详细信息,请参阅跨产品依赖项

要编辑 input.json,您可以在客户端计算机上使用自己喜欢的文本编辑器。
下表描述了必须更新以正确配置 Automation Suite 的主要input.json参数。 有关配置示例,请参阅AKS input.json 示例EKS input.json 示例

常规参数

描述

kubernetes_distribution

指定您使用的 Kubernetes 发行版。可以是 akseks

install_type

确定是以在线模式还是离线模式部署集群。如果未指定,则集群将以在线模式部署。要在离线模式下部署集群,您必须将 install_type 参数的值显式设置为 offline
可能的值:onlineoffline
默认值: online

registries

用于为 UiPath™ 产品和 Automation Suite 拉取 Docker 映像和 Helm 图表的 URL。

registry.uipath.com

istioMinProtocolVersion

Istio 接受用于安全通信的最低 TLS 协议版本。 可以设置为TLSV1_2TLSV1_3

fqdn

Automation Suite 的负载均衡器端点

admin_username

您要设置为主机组织管理员的用户名。

admin_password

要设置的主机管理员密码。

profile

设置安装的配置文件。可用的配置文件包括:

  • lite :精简模式配置文件。
  • ha:多节点 HA 就绪生产配置文件。

有关管理配置文件的更多详细信息,请参阅配置文件配置

telemetry_optout

truefalse - 用于选择不将遥测数据发送回 UiPath™。默认情况下,它设置为 false
如果要选择退出,请设置为 true

fips_enabled_nodes

指示是否要在计划安装 Automation Suite 的节点上启用 FIPS 140-2。 可能的值为truefalse
storage_class

指定用于 PV 配置的存储类。 此存储类必须支持多个副本,以实现最佳高可用性,并拥有备份功能。

有关更多信息,请参阅“块存储”部分。

storage_class_single_replica

提供用于 PV 配置的存储类。 对于不需要高可用性的组件,此存储类可以具有单个副本。 该存储类不能具有备份功能。

有关更多信息,请参阅文件存储一节。

storage_class_single_replica值可以与storage_class值相同。
exclude_components

使用此参数可防止安装非必要组件。

有关详细信息,请参阅使用自己的组件

namespace

指定要安装 Automation Suite 的命名空间。

有关详细信息,请参阅自定义命名空间配置

argocd.application_namespace

计划安装的应用程序的命名空间。 理想情况下,这应与计划安装 Automation Suite 的命名空间相同。

argocd.project

部署 Automation Suite 所需的 ArgoCD 项目。 仅当您要使用共享或全局 ArgoCD 实例而不是专用的 ArgoCD 实例时,这才是必需的。

配置文件配置

安装 Automation Suite 时,您可以选择以下配置文件模式:

  • 可配置的高可用性配置文件(精简模式)

  • 标准高可用性配置文件(HA 模式)

仅在精简模式下,您才能将特定产品切换到高可用性 (HA)。 这种灵活性使您可以从非关键工作负载开始,并可以在加入关键工作负载时轻松地切换到 HA 模式。

要为产品启用高可用性 (HA),您必须修改input.json文件。 具体来说,您必须将要具有高可用性的产品的profile参数更改为ha
....
  "automation_ops": {
    "enabled": true,
    "profile": "ha" // flag for turning on high availability
  },
  "action_center": {
    "enabled": true,
    "profile": "lite"
  },
  ...  ....
  "automation_ops": {
    "enabled": true,
    "profile": "ha" // flag for turning on high availability
  },
  "action_center": {
    "enabled": true,
    "profile": "lite"
  },
  ...

要将其从精简模式切换到 HA 模式,请执行以下步骤:

  1. 确保您有足够的基础架构功能来在平台级别切换到标准 HA。 默认情况下,精简模式将每个产品设置为具有一个已启用水平 Pod 缩放的副本。
  2. 编辑input.json配置文件,并更改目标产品的profile参数。
  3. 运行以下命令:
    uipathctl manifest apply uipathctl manifest apply

UiPath™ 产品

您可以在安装时和安装后的任何时间启用和禁用 Automation Suite 中的产品。 有关每个产品配置的更多详细信息,请参阅 管理产品

Orchestrator 示例:

"orchestrator": {
  "enabled": true,
  "external_object_storage": {
    "bucket_name": "uipath-as-orchestrator"
  },
  "testautomation": {
    "enabled": true
  },
  "updateserver": {
    "enabled": true
  }"orchestrator": {
  "enabled": true,
  "external_object_storage": {
    "bucket_name": "uipath-as-orchestrator"
  },
  "testautomation": {
    "enabled": true
  },
  "updateserver": {
    "enabled": true
  }

自带组件

Automation Suite 允许您使用自己的 Gatekeeper 和 OPA 策略、Cert Manager、Istio、监控、日志记录组件等。如果您选择排除这些组件,请在安装 Automation Suite 之前确保它们在集群中可用。

以下示例显示了已排除组件的列表。您可以删除要让 Automation Suite 配置的组件。

"exclude_components": [
        "alerts",
        "auth",
        "istio",
        "cert-manager",
        "logging",
        "monitoring",
        "gatekeeper",
        "network-policies",
        "velero"
  ]   "exclude_components": [
        "alerts",
        "auth",
        "istio",
        "cert-manager",
        "logging",
        "monitoring",
        "gatekeeper",
        "network-policies",
        "velero"
  ] 

排除 Istio

如果您自带 Istio 组件,请确保在 input.json 文件中包含 Istio 网关中的 gateway_selector 标签。要查找网关选取器标签,请执行以下步骤:
  1. 通过运行 kubectl get pods -n <istio-system> 命令列出 <istio-system> 命名空间中的所有 Pod。
  2. 查找适用于您的 Istio 网关部署的网关。

注意:如果您计划自行安装 WASM 插件,并且希望避免为 Automation Suite 安装程序提供对<istio-system>命名空间的写入权限,则必须将istio-configure组件添加到exclude_components列表中。

不包括证书管理器

如果您选择使用自己的证书管理器,并且 TLS 证书由私有或非公共 CA 颁发,则必须手动将叶证书和中间 CA 证书包含在 TLS 证书文件中。如果是公共 CA,客户端系统将自动信任它们,您无需采取进一步的措施。

证书配置

如果安装时未提供证书,则安装程序将创建自行颁发的证书并在集群中对这些证书进行配置。

备注:

只有在安装期间授予 Automation Suite 安装程序管理员权限时,才能在安装时创建证书。 如果您无法向安装程序授予管理员权限,则必须自行创建和管理证书。

有关如何获取证书的详细信息,请参阅管理证书

备注:
请务必指定证书文件的绝对路径。 运行pwd以获取放置文件目录的路径,并将证书文件名附加到input.json中。

参数

描述

server_certificate.ca_cert_file

证书颁发机构证书的绝对路径。此证书颁发机构是对 TLS 证书进行签名的机构。CA 捆绑包必须仅包含用于对 TLS 证书进行签名的链证书。链式证书上限为九个证书。

如果您使用的是自签名证书,则需要指定先前创建的 rootCA.crt 的路径。如果要安装程序生成该路径,请留空。

server_certificate.tls_cert_file

TLS 证书的绝对路径(server.crt 是自签名证书)。如果要安装程序生成该路径,请留空。
注意:如果您自己提供证书,则server.crt文件必须包含整个链,如以下示例所示:
-----server cert-----
-----root ca chain----------server cert-----
-----root ca chain-----

server_certificate.tls_key_file

证书密钥的绝对路径(server.key 是自签名证书)。如果要安装程序生成该路径,请留空。

identity_certificate.token_signing_cert_file

用于对令牌进行签名的身份令牌签名证书的绝对路径(identity.pfx 是自签名证书)。如果您希望安装程序使用服务器证书生成身份证书,请留空。

identity_certificate.token_signing_cert_pass

导出身份令牌签名证书时设置的纯文本密码。

additional_ca_certs

包含其他 CA 证书的文件的绝对路径,作为 Automation Suite 的一部分运行的所有服务均会信任这些证书。文件中的所有证书均必须为有效的 PEM 格式。

例如,如果证书不是由公共证书颁发机构颁发,则需要提供包含 SQL Server CA 证书的文件。

基础架构先决条件

您必须提供在 Azure 或 AWS 上配置的先决条件的配置详细信息。 有关 input.json 参数要求,请参阅以下先决条件部分:

外部对象存储配置

常规配置

Automation Suite 允许您使用自己的外部存储提供程序。您可以从以下存储提供程序中进行选择:

  • Azure
  • AWS
  • 兼容 S3

您可以通过以下方式之一配置外部对象存储:

  • 在安装过程中;
  • 安装后,使用input.json文件。
备注:
  • 为了使 Automation Suite 在使用预签名 URL 时正常运行,您必须确保可从 Automation Suite 集群、浏览器和所有计算机(包括工作站和机器人计算机)访问外部对象存储。
  • 只能在 2014 年 1 月 30 日之后创建的任何区域中部署的 Automation Suite 存储桶上启用使用密钥管理服务 (SSE-KMS) 的服务器端加密。

    SSE-KMS 功能需要纯 SignV4 API。由于与 SignV2 向后兼容,2014 年 1 月 30 日之前创建的区域不使用纯 SignV4 API。因此,SSE-KMS 仅在使用 SignV4 进行通信的区域中起作用。要了解配置各个区域的时间,请参阅 AWS 文档

如果使用私有端点访问容器,则必须在input.json文件中添加fqdn参数,并将私有端点指定为值。
下表列出了可用于配置每个外部对象存储提供程序的input.json参数:

参数

Azure

AWS

兼容 S3

描述

external_object_storage.enabled

available

available

available

指定是否要使用自己的对象存储。可能的值:truefalse

external_object_storage.create_bucket

available

available

available

指定是否要配置存储桶。可能的值:truefalse

external_object_storage.storage_type

available

available

available

指定要配置的存储提供程序。该值区分大小写。 可能的值:azures3
注意:许多 S3 对象存储要求将 CORS 设置为来自 Automation Suite 集群的所有流量。您必须在对象存储级别配置 CORS 策略,以允许使用集群的 FQDN。

external_object_storage.fqdn

不可用

available

available

指定 S3 服务器的 FQDN。对于 AWS 实例和非实例配置文件为必需。

external_object_storage.port

不可用

available

available

指定 S3 端口。对于 AWS 实例和非实例配置文件为必需。

external_object_storage.region

不可用

available

available

指定托管存储桶的 AWS 区域。对于 AWS 实例和非实例配置文件为必需。

external_object_storage.access_key

不可用

available

available

指定 S3 帐户的访问密钥。

external_object_storage.secret_key

不可用

available

available

指定 S3 帐户的密钥。 仅在 AWS 非实例配置文件的情况下才需要。

external_object_storage.use_instance_profile

不可用

available

available

指定是否要使用实例配置文件。AWS 身份和访问管理 (IAM) 实例配置文件可为在 Amazon Elastic Compute Cloud (EC2) 实例上运行的应用程序或服务授予对 AWS 资源的安全访问权限。如果您选择 AWS S3,则实例配置文件允许 EC2 实例与 S3 存储桶交互,而无需将显式 AWS 凭据(例如访问密钥)存储在实例上。

external_object_storage.bucket_name_prefix 1

不可用

available

available

指定存储桶名称的前缀。对于 AWS 非实例配置文件为可选。

external_object_storage.bucket_name_suffix 2

不可用

available

available

指定存储桶名称的后缀。对于 AWS 非实例配置文件为可选。

external_object_storage.account_key

available

不可用

不可用

指定 Azure 帐户密钥。

external_object_storage.account_name

available

不可用

不可用

指定 Azure 帐户名称。

external_object_storage.azure_fqdn_suffix

available

不可用

不可用

指定 Azure FQDN 后缀。 可选参数。

external_object_storage.client_id

available

不可用

不可用

指定 Azure 客户端 ID。仅在使用托管标识时才需要。

1 如果您计划禁用预签名 URL 访问,请注意,Task Mining 以及以下从对象存储上传或检索数据的活动不支持此配置:

2,3配置外部对象存储时,您必须遵循提供程序为 bucket_name_prefixbucket_name_suffix 提供的命名规则和约定。除此之外,后缀和前缀的总长度不得超过 25 个字符,并且您不得以连字符 (-) 作为前缀结尾或后缀开头,因为我们已经为您自动添加了字符。

特定于产品的配置

您可以使用“常规配置”部分中描述的参数来更新 Automation Suite 的常规配置。这意味着所有已安装的产品将共享相同的配置。如果要以不同方式配置一个或多个产品,可以覆盖常规配置。您只需指定要以不同方式设置外部对象存储的产品,并使用相同的参数来定义配置。请注意,所有其他已安装的产品将继续继承常规配置。

以下示例显示了如何覆盖 Orchestrator 的常规配置:

"external_object_storage": {
  "enabled": false, // <true/false>
  "create_bucket": true, // <true/false>
  "storage_type": "s3", // <s3,azure,aws>
  "fqdn": "",  // <needed in the case of aws instance and non-instance profile>
  "port": 443, // <needed in the case of aws instance and non-instance profile>
  "region": "", 
  "access_key": "", // <needed in the case of aws non instance profile>
  "secret_key": "", // <needed in the case of aws non instance profile>
  "use_managed_identity": false, // <true/false>
  "bucket_name_prefix": "",
  "bucket_name_suffix": "",
  "account_key": "", 
  "account_name": "",
  "azure_fqdn_suffix": "core.windows.net",
  "client_id": "" 
},

"orchestrator": {
  "external_object_storage": {
    "enabled": false, // <true/false>
    "create_bucket": true, // <true/false>
    "storage_type": "s3", // <s3,azure>
    "fqdn": "",  // <needed in the case of aws instance and non-instance profile>
    "port": 443, // <needed in the case of aws instance and non-instance profile>
    "region": "", 
    "access_key": "", // <needed in case of aws non instance profile>
    "secret_key": "", // <needed in case of aws non instance profile>
    "use_managed_identity": false, // <true/false>
    "bucket_name_prefix": "",
    "bucket_name_suffix": "",
    "account_key": "", 
    "account_name": "",
    "azure_fqdn_suffix": "core.windows.net",
    "client_id": "" 
  }
}"external_object_storage": {
  "enabled": false, // <true/false>
  "create_bucket": true, // <true/false>
  "storage_type": "s3", // <s3,azure,aws>
  "fqdn": "",  // <needed in the case of aws instance and non-instance profile>
  "port": 443, // <needed in the case of aws instance and non-instance profile>
  "region": "", 
  "access_key": "", // <needed in the case of aws non instance profile>
  "secret_key": "", // <needed in the case of aws non instance profile>
  "use_managed_identity": false, // <true/false>
  "bucket_name_prefix": "",
  "bucket_name_suffix": "",
  "account_key": "", 
  "account_name": "",
  "azure_fqdn_suffix": "core.windows.net",
  "client_id": "" 
},

"orchestrator": {
  "external_object_storage": {
    "enabled": false, // <true/false>
    "create_bucket": true, // <true/false>
    "storage_type": "s3", // <s3,azure>
    "fqdn": "",  // <needed in the case of aws instance and non-instance profile>
    "port": 443, // <needed in the case of aws instance and non-instance profile>
    "region": "", 
    "access_key": "", // <needed in case of aws non instance profile>
    "secret_key": "", // <needed in case of aws non instance profile>
    "use_managed_identity": false, // <true/false>
    "bucket_name_prefix": "",
    "bucket_name_suffix": "",
    "account_key": "", 
    "account_name": "",
    "azure_fqdn_suffix": "core.windows.net",
    "client_id": "" 
  }
}

轮换 Process Mining 的 Blob 存储凭据

要轮换 Automation Suite 中 Process Mining 的 Blob 存储凭据,必须使用新凭据更新存储的密码。请参阅轮换 Blob 存储凭据

预签名 URL 配置

您可以使用 disable_presigned_url 标志来指定是否要在全局级别禁用预签名 URL 访问。默认情况下,为整个平台启用预签名 URL。可能的值为 truefalse
{
  "disable_presigned_url" : true
}{
  "disable_presigned_url" : true
}
备注:
  • 您只能为新安装更改此参数的默认值。该操作无法撤销,也不适用于现有集群。

  • 您只能将此配置应用于整个平台,无法在产品级别覆盖全局配置。

符合 OCI 的外部注册表配置

要配置符合 OCI 的外部注册表,请更新input.json文件中的以下参数:

registries.docker.url

默认值: registry.uipath.com

Automation Suite 用于托管容器映像的注册表的 URL 或 FQDN。

registries.docker.username

registries.docker.password

用于从注册表中拉取 Docker 映像的身份验证信息。

如果在输入文件中找到其中一个值,则在配置外部注册表时必须同时提供这两个值。

registries.docker.pull_secret_value

注册表拉取密码。

registries.helm.url

默认值: registry.uipath.com

Automation Suite 用于托管服务的 Helm 图表的注册表 URL 或 FQDN。

registries.helm.username

registries.helm.password

用于从注册表中拉取 Helm 图表的身份验证信息。

如果在输入文件中找到其中一个值,则在配置外部注册表时必须同时提供这两个值。

registry_ca_cert

与为注册表配置的证书相对应的 CA 文件的位置。

如果注册表由您内部托管的私有证书颁发机构签名,则您必须提供该注册表项以建立信任。

备注:
您可以使用不同的方法来生成pull_secret_value的编码版本,包括使用 Docker 的方法。 有关详细信息,请参阅。

以下配置示例显示了典型的符合 OCI 的注册表设置:

{
    "registries": {
        "docker": {
            "url": "registry.domain.io",
            "username": "username",
            "password": "password", 
            "pull_secret_value": "pull-secret-value"
        },
        "helm": {
            "url": "registry.domain.io",
            "username": "username",
            "password": "password"
        },
        "trust": {
            "enabled": true,
            "public_key": "LS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS0KTUZrd0V3WUhLb1pJemowQ0FRWUlLb1pJemowREFRY0RRZ0FFNE4vSzNzK2VXUTJHU3NnTTJNcUhsdEplVHlqRQp1UC9sd0dNTnNNUjhUZTI2Ui9TTlVqSVpIdnJKcEx3YmpDc0ZlZUI3L0xZaFFsQzlRdUU1WFhITDZ3PT0KLS0tLS1FTkQgUFVCTElDIEtFWS0tLS0tCg==",
            "detection_mode": false
        }
    },
    "registry_ca_cert": "/etc/pki/ca-trust/extracted/ca-bundle.trust.crt"
}{
    "registries": {
        "docker": {
            "url": "registry.domain.io",
            "username": "username",
            "password": "password", 
            "pull_secret_value": "pull-secret-value"
        },
        "helm": {
            "url": "registry.domain.io",
            "username": "username",
            "password": "password"
        },
        "trust": {
            "enabled": true,
            "public_key": "LS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS0KTUZrd0V3WUhLb1pJemowQ0FRWUlLb1pJemowREFRY0RRZ0FFNE4vSzNzK2VXUTJHU3NnTTJNcUhsdEplVHlqRQp1UC9sd0dNTnNNUjhUZTI2Ui9TTlVqSVpIdnJKcEx3YmpDc0ZlZUI3L0xZaFFsQzlRdUU1WFhITDZ3PT0KLS0tLS1FTkQgUFVCTElDIEtFWS0tLS0tCg==",
            "detection_mode": false
        }
    },
    "registry_ca_cert": "/etc/pki/ca-trust/extracted/ca-bundle.trust.crt"
}
注意:对于需要使用项目的注册表(例如 Hub),您必须将项目名称附加到注册表 URL。 该要求适用于input.json文件中的registries.docker.urlregistries.helm.url参数,如以下示例所示:
{
  "registries": {
    "docker": {
      "url": "registry.domain.io/myproject",
      "username": "username",
      "password": "password"
      "pull_secret_value": "pull-secret-value"
    },
    "helm": {
      "url": "registry.domain.io/myproject",
      "username": "username",
      "password": "password"
    }
    "trust": {  
        "enabled": true,  
        "public_key": "LS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS0KTUZrd0V3WUhLb1pJemowQ0FRWUlLb1pJemowREFRY0RRZ0FFNE4vSzNzK2VXUTJHU3NnTTJNcUhsdEplVHlqRQp1UC9sd0dNTnNNUjhUZTI2Ui9TTlVqSVpIdnJKcEx3YmpDc0ZlZUI3L0xZaFFsQzlRdUU1WFhITDZ3PT0KLS0tLS1FTkQgUFVCTElDIEtFWS0tLS0tCg==",  
        "detection_mode": false  
    }
  },
  "registry_ca_cert": "/etc/pki/ca-trust/extracted/ca-bundle.trust.crt"
}{
  "registries": {
    "docker": {
      "url": "registry.domain.io/myproject",
      "username": "username",
      "password": "password"
      "pull_secret_value": "pull-secret-value"
    },
    "helm": {
      "url": "registry.domain.io/myproject",
      "username": "username",
      "password": "password"
    }
    "trust": {  
        "enabled": true,  
        "public_key": "LS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS0KTUZrd0V3WUhLb1pJemowQ0FRWUlLb1pJemowREFRY0RRZ0FFNE4vSzNzK2VXUTJHU3NnTTJNcUhsdEplVHlqRQp1UC9sd0dNTnNNUjhUZTI2Ui9TTlVqSVpIdnJKcEx3YmpDc0ZlZUI3L0xZaFFsQzlRdUU1WFhITDZ3PT0KLS0tLS1FTkQgUFVCTElDIEtFWS0tLS0tCg==",  
        "detection_mode": false  
    }
  },
  "registry_ca_cert": "/etc/pki/ca-trust/extracted/ca-bundle.trust.crt"
}

自定义命名空间配置

您可以指定单个自定义命名空间来替换默认的uipathuipath-checkuipath-installer命名空间。 要定义自定义命名空间,请为可选namespace参数提供值。 如果未提供namespace参数的值,则系统会改用默认命名空间。

自定义命名空间标签配置

如果希望 UiPath 命名空间包含自定义命名空间标签,请将以下部分添加到 input.json 文件中。请务必添加您自己的标签。
"namespace_labels": {
		"install-type": "aksoffline",
		"uipathctlversion": "rc-10_0.1",
		"updatedLabel": "rerun"
	}, "namespace_labels": {
		"install-type": "aksoffline",
		"uipathctlversion": "rc-10_0.1",
		"updatedLabel": "rerun"
	},

自定义节点容错配置

如果您需要在计划安装 Automation Suite 的节点上自定义污点和容错,请使用以下标志更新 input.json。确保为 spec 字段提供适当的值。
"tolerations": [
  {
    "spec": {
      "key": "example-key", 
      "operator": "Exists",
      "value": "optional-value",
      "effect": "NoSchedule"
    }
  },
  {
    "spec": {
      "key": "example-key2", 
      "operator": "Exists",
      "value": "optional-value2",
      "effect": "NoSchedule"
    }
  }
]"tolerations": [
  {
    "spec": {
      "key": "example-key", 
      "operator": "Exists",
      "value": "optional-value",
      "effect": "NoSchedule"
    }
  },
  {
    "spec": {
      "key": "example-key2", 
      "operator": "Exists",
      "value": "optional-value2",
      "effect": "NoSchedule"
    }
  }
]

内部负载均衡器配置

您可以在 AKS 和 EKS 安装类型中为部署使用内部负载均衡器。为此,必须在 input.json 文件的 ingress 部分中指定此内容。
AKS internal load balancer configuration field details 字段详细信息:
参数描述
Azure 负载均衡器内部指定负载均衡器是否为内部。
EKS internal load balancer configuration field details 字段详细信息:
  
aws-load-balancer-backend-protocol指定后端协议。
aws-load-balancer-nlb-target-type指定要为 NLB 配置的目标类型。您可以在 instanceip 之间进行选择。
aws-load-balancer-scheme指定 NLB 是面向互联网还是内部。有效值为 internalinternet-facing。如果未指定,则默认为 internal
aws-load-balancer-type指定负载均衡器类型。此控制器会协调这些服务资源,并将此注释设置为 nlbexternal
aws-load-balancer-internal指定 NLB 是面向互联网还是内部。

AKS 示例

"ingress": {
    "service_annotations": {
      "service.beta.kubernetes.io/azure-load-balancer-internal": "true"
    }
  }, "ingress": {
    "service_annotations": {
      "service.beta.kubernetes.io/azure-load-balancer-internal": "true"
    }
  },

EKS 示例

"ingress": {
    "service_annotations": {
      "service.beta.kubernetes.io/aws-load-balancer-backend-protocol": "ssl",
      "service.beta.kubernetes.io/aws-load-balancer-nlb-target-type": "ip",
      "service.beta.kubernetes.io/aws-load-balancer-scheme": "internal",
      "service.beta.kubernetes.io/aws-load-balancer-type": "nlb",
      "service.beta.kubernetes.io/aws-load-balancer-internal": "true"
    }
  },  "ingress": {
    "service_annotations": {
      "service.beta.kubernetes.io/aws-load-balancer-backend-protocol": "ssl",
      "service.beta.kubernetes.io/aws-load-balancer-nlb-target-type": "ip",
      "service.beta.kubernetes.io/aws-load-balancer-scheme": "internal",
      "service.beta.kubernetes.io/aws-load-balancer-type": "nlb",
      "service.beta.kubernetes.io/aws-load-balancer-internal": "true"
    }
  },
有关在 AKS 和 EKS 中创建内部负载均衡器的更多信息,请访问以下链接:

工作负载身份配置

工作负载身份是托管身份的一种变体,如果您在 AKS 上使用 Automation Suite,则可以使用此身份。 工作负载身份通过使 Pod 使用 Kubernetes 身份(例如服务帐户)来帮助您避免管理凭据。 工作负载身份还允许 Kubernetes 应用程序根据批注的服务帐户,使用 Microsoft Entra ID 安全地访问 Azure 资源。

要了解有关工作负载身份的更多信息,请参阅在 AKS - Azure Kubernetes 服务上使用 Microsoft Entra 工作负载 ID

备注:

Studio Web、Insights 和 Task Mining 当前不支持工作负载身份。

要使用工作负载身份,请执行以下步骤:

  1. 为集群启用工作负载身份和 OIDC 颁发者,检索 OIDC 颁发者 URL,并创建将在工作负载身份中使用的用户分配的托管身份。 要执行这些操作,请按照使用工作负载身份 - Azure Kubernetes 服务部署和配置 AKS 集群中的说明进行操作。
  2. 保存用户分配的托管标识的客户端 ID,并在input.json文件中提供该 ID。
    {
      ...
      "pod_identity" : {
        "enabled": true,
        "aks_managed_identity_client_id":<client-id>,
      }
      ...
    }{
      ...
      "pod_identity" : {
        "enabled": true,
        "aks_managed_identity_client_id":<client-id>,
      }
      ...
    }
  3. 运行以下脚本,该脚本为我们为 Automation Suite 创建的所有服务帐户创建联合凭据:
    #!/bin/bash
    
    # Variables
    RESOURCE_GROUP="<resource-group-name>"
    USER_ASSIGNED_IDENTITY_NAME="<user-assigned-identity-name>"
    AKS_OIDC_ISSUER="<aks-oidc-issuer>"
    AUDIENCE="api://AzureADTokenExchange"
    
    # Helper function to create federated credentials
    create_federated_credentials() {
      local NAMESPACE=$1
      shift
      local SERVICE_ACCOUNTS=("$@")
    
      for SERVICE_ACCOUNT_NAME in "${SERVICE_ACCOUNTS[@]}"; do
        # Generate a unique federated identity credential name
        FEDERATED_IDENTITY_CREDENTIAL_NAME="${NAMESPACE}-${SERVICE_ACCOUNT_NAME}"
    
        echo "Creating federated credential for namespace: ${NAMESPACE}, service account: ${SERVICE_ACCOUNT_NAME}"
    
        # Run the Azure CLI command
        az identity federated-credential create \
          --name "${FEDERATED_IDENTITY_CREDENTIAL_NAME}" \
          --identity-name "${USER_ASSIGNED_IDENTITY_NAME}" \
          --resource-group "${RESOURCE_GROUP}" \
          --issuer "${AKS_OIDC_ISSUER}" \
          --subject "system:serviceaccount:${NAMESPACE}:${SERVICE_ACCOUNT_NAME}" \
          --audience "${AUDIENCE}"
    
        if [ $? -eq 0 ]; then
          echo "Federated credential created successfully for ${NAMESPACE}:${SERVICE_ACCOUNT_NAME}"
        else
          echo "Failed to create federated credential for ${NAMESPACE}:${SERVICE_ACCOUNT_NAME}"
        fi
      done
    }
    
    
    # Call the function for each namespace and its service accounts
    create_federated_credentials "uipath" "default" "asrobots-sa" "taskmining-client" "dataservice-be-service-account" "dataservice-fe-service-account" "insights-adf" "du-documentmanager-service-account" "services-configure-uipath-ba" "aicenter-jobs" "aicenter-deploy" "ailoadbalancer-service-account" "airflow"
    create_federated_credentials "uipath-check" "default"
    create_federated_credentials "velero" "velero-server"#!/bin/bash
    
    # Variables
    RESOURCE_GROUP="<resource-group-name>"
    USER_ASSIGNED_IDENTITY_NAME="<user-assigned-identity-name>"
    AKS_OIDC_ISSUER="<aks-oidc-issuer>"
    AUDIENCE="api://AzureADTokenExchange"
    
    # Helper function to create federated credentials
    create_federated_credentials() {
      local NAMESPACE=$1
      shift
      local SERVICE_ACCOUNTS=("$@")
    
      for SERVICE_ACCOUNT_NAME in "${SERVICE_ACCOUNTS[@]}"; do
        # Generate a unique federated identity credential name
        FEDERATED_IDENTITY_CREDENTIAL_NAME="${NAMESPACE}-${SERVICE_ACCOUNT_NAME}"
    
        echo "Creating federated credential for namespace: ${NAMESPACE}, service account: ${SERVICE_ACCOUNT_NAME}"
    
        # Run the Azure CLI command
        az identity federated-credential create \
          --name "${FEDERATED_IDENTITY_CREDENTIAL_NAME}" \
          --identity-name "${USER_ASSIGNED_IDENTITY_NAME}" \
          --resource-group "${RESOURCE_GROUP}" \
          --issuer "${AKS_OIDC_ISSUER}" \
          --subject "system:serviceaccount:${NAMESPACE}:${SERVICE_ACCOUNT_NAME}" \
          --audience "${AUDIENCE}"
    
        if [ $? -eq 0 ]; then
          echo "Federated credential created successfully for ${NAMESPACE}:${SERVICE_ACCOUNT_NAME}"
        else
          echo "Failed to create federated credential for ${NAMESPACE}:${SERVICE_ACCOUNT_NAME}"
        fi
      done
    }
    
    
    # Call the function for each namespace and its service accounts
    create_federated_credentials "uipath" "default" "asrobots-sa" "taskmining-client" "dataservice-be-service-account" "dataservice-fe-service-account" "insights-adf" "du-documentmanager-service-account" "services-configure-uipath-ba" "aicenter-jobs" "aicenter-deploy" "ailoadbalancer-service-account" "airflow"
    create_federated_credentials "uipath-check" "default"
    create_federated_credentials "velero" "velero-server"

要将工作负载身份与 SQL 一起使用,请参阅工作负载从 AKS 对 SQL 进行基于身份的访问

要将工作负载身份与存储帐户一起使用,请参阅从 AKS 工作负载对存储帐户进行基于身份的访问

特定于 Orchestrator 的配置

Orchestrator 可以将机器人日志保存到 Elasticsearch 服务器。您可以在 orchestrator.orchestrator_robot_logs_elastic 部分中配置此功能。如果未提供,则系统会将机器人日志保存到 Orchestrator 的数据库中。
下表列出了 orchestrator.orchestrator_robot_logs_elastic 参数:

参数

描述

orchestrator_robot_logs_elastic

Elasticsearch 配置。

elastic_uri

应使用的 Elasticsearch 实例的地址。应以 URI 的形式提供。如已提供,则还需要用户名和密码。

elastic_auth_username

用于身份验证的 Elasticsearch 用户名。

elastic_auth_password

用于身份验证的 Elasticsearch 密码。

Insights 特定配置

如果启用 Insights,则用户可以包含将用于发送计划电子邮件/警示电子邮件的 SMTP 服务器配置。如果未提供,计划电子邮件和警示电子邮件将不起作用。

insights.smtp_configuration 字段详细信息:

参数

描述

tls_version

有效值为 TLSv1_2TLSv1_1SSLv23如果不使用 TLS,则完全省略密钥

from_email

警示/计划电子邮件的发件人地址。

host

SMTP 服务器的主机名。

port

SMTP 服务器的端口

username

用于 SMTP 服务器身份验证的用户名。

password

用于 SMTP 服务器身份验证的密码。

enable_realtime_monitoring标记以启用 Insights 实时监控。有效值为 truefalse。默认值为 false

示例

"insights": {
    "enabled": true,
    "enable_realtime_monitoring": true,
    "smtp_configuration": {
      "tls_version": "TLSv1_2",
      "from_email": "test@test.com",
      "host": "smtp.sendgrid.com",
      "port": 587,
      "username": "login",
      "password": "password123"
    }
  }"insights": {
    "enabled": true,
    "enable_realtime_monitoring": true,
    "smtp_configuration": {
      "tls_version": "TLSv1_2",
      "from_email": "test@test.com",
      "host": "smtp.sendgrid.com",
      "port": 587,
      "username": "login",
      "password": "password123"
    }
  }

Process Mining 特定配置

如果启用 Process Mining,我们建议用户指定一个辅助 SQL Server,作为独立于主 Automation Suite SQL Server 的数据仓库。数据仓库 SQL Server 将处于高负载状态,可以在 processmining 部分中进行配置:

参数

描述

sql_connection_str

数据库设置为占位符的 DotNet 格式连接字符串: Initial Catalog=DB_NAME_PLACEHOLDER

sqlalchemy_pyodbc_sql_connection_str

自定义 Airflow 元数据数据库位置的 Sqlalchemy PYODBC 格式连接字符串:sqlServer:1433/DB_NAME_PLACEHOLDER

示例:

mssql+pyodbc://testadmin%40myhost:mypassword@myhost:1433/AutomationSuite_Airflow?driver=ODBC+Driver+17+for+SQL+Server&TrustServerCertificate=YES&Encrypt=YES

位置

用户: testadmin%40myhost
备注:

如果用户名中包含“@”,则必须将其编码为 %40

示例:(使用 Kerberos 身份验证设置 SQL Server)

mssql+pyodbc://:@assql2019.autosuitead.local:1433/AutomationSuite_ProcessMining_Warehouse?driver=ODBC+Driver+17+for+SQL+Server&TrustServerCertificate=YES&Encrypt=YES&Trusted_Connection=yes

warehouse.sql_connection_str

到 Process Mining 数据仓库 SQL Server 的 DotNet 格式的 SQL 连接字符串,其中包含 dbname 的占位符:

Initial Catalog=DB_NAME_PLACEHOLDER

warehouse.sqlalchemy_pyodbc_sql_connection_str

使用 dbname 占位符到 processmining 数据仓库 SQL Server 的 Sqlalchemy PYODBC 格式的 SQL 连接字符串:

sqlServer:1433/DB_NAME_PLACEHOLDER

warehouse.master_sql_connection_str

如果安装程序通过 sql.create_db: true 设置创建数据库,则必须为 Processmining 数据仓库 SQL Server 提供 DotNet 格式的主 SQL 连接字符串。连接字符串中的数据库必须设置为 master

Process Mining 连接字符串示例

"processmining": {
    "enabled": true,
    "app_security_mode": "system_managed",
    "warehouse": {
        "sql_connection_str": "Server=tcp:sfdev4515230-sql.database.windows.net,1433;Initial Catalog=AutomationSuite_ProcessMining_Warehouse;User Id=testadmin@sfdev4515230-sql.database.windows.net;Password='password';Persist Security Info=False;Integrated Security=true;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=True;Connection Timeout=30;Max Pool Size=100;",
	    "sqlalchemy_pyodbc_sql_connection_str": "mssql+pyodbc://testadmin%40sfdev4515230-sql.database.windows.net:07%3Cl%5Bxj-%3D~%3Az%60Ds%26nl@sfdev4515230-sql.database.windows.net:1433/AutomationSuite_ProcessMining_Warehouse?driver=ODBC+Driver+17+for+SQL+Server&TrustServerCertificate=YES&Encrypt=YES&Trusted_Connection=yes",
        "master_sql_connection_str": "Server=tcp:sfdev4515230-sql.database.windows.net,1433;Initial Catalog=master;Persist Security Info=False;Integrated Security=true;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=True;Connection Timeout=30;Max Pool Size=100;"
    },
    "sqlalchemy_pyodbc_sql_connection_str": "mssql+pyodbc://testadmin%40sfdev4515230-sql.database.windows.net:07%3Cl%5Bxj-%3D~%3Az%60Ds%26nl@sfdev4515230-sql.database.windows.net:1433/AutomationSuite_Airflow?driver=ODBC+Driver+17+for+SQL+Server&TrustServerCertificate=YES&Encrypt=YES"
    "sql_connection_str": "Server=tcp:sfdev4515230-sql.database.windows.net,1433;Initial Catalog=AutomationSuite_ProcessMining_Metadata;User Id=testadmin@sfdev4515230-sql.database.windows.net;Password='password';Persist Security Info=False;Integrated Security=true;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=True;Connection Timeout=30;Max Pool Size=100;",  
},"processmining": {
    "enabled": true,
    "app_security_mode": "system_managed",
    "warehouse": {
        "sql_connection_str": "Server=tcp:sfdev4515230-sql.database.windows.net,1433;Initial Catalog=AutomationSuite_ProcessMining_Warehouse;User Id=testadmin@sfdev4515230-sql.database.windows.net;Password='password';Persist Security Info=False;Integrated Security=true;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=True;Connection Timeout=30;Max Pool Size=100;",
	    "sqlalchemy_pyodbc_sql_connection_str": "mssql+pyodbc://testadmin%40sfdev4515230-sql.database.windows.net:07%3Cl%5Bxj-%3D~%3Az%60Ds%26nl@sfdev4515230-sql.database.windows.net:1433/AutomationSuite_ProcessMining_Warehouse?driver=ODBC+Driver+17+for+SQL+Server&TrustServerCertificate=YES&Encrypt=YES&Trusted_Connection=yes",
        "master_sql_connection_str": "Server=tcp:sfdev4515230-sql.database.windows.net,1433;Initial Catalog=master;Persist Security Info=False;Integrated Security=true;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=True;Connection Timeout=30;Max Pool Size=100;"
    },
    "sqlalchemy_pyodbc_sql_connection_str": "mssql+pyodbc://testadmin%40sfdev4515230-sql.database.windows.net:07%3Cl%5Bxj-%3D~%3Az%60Ds%26nl@sfdev4515230-sql.database.windows.net:1433/AutomationSuite_Airflow?driver=ODBC+Driver+17+for+SQL+Server&TrustServerCertificate=YES&Encrypt=YES"
    "sql_connection_str": "Server=tcp:sfdev4515230-sql.database.windows.net,1433;Initial Catalog=AutomationSuite_ProcessMining_Metadata;User Id=testadmin@sfdev4515230-sql.database.windows.net;Password='password';Persist Security Info=False;Integrated Security=true;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=True;Connection Timeout=30;Max Pool Size=100;",  
},
注意:

设置 Microsoft SQL Server 时,请确保将安装 Airflow 数据库和专用 Process Mining 数据库的 SQL Server 计算机的时区设置为 UTC。

注意:

为 Process Mining 数据仓库 SQL Server 配置连接字符串时,应省略 SQL Server 的命名实例。

SQL Server 命名实例不能在同一 TCP 端口上运行。 因此,仅端口号就足以区分实例。

例如,使用 tcp:server,1445 代替 tcp:server\namedinstance,1445
注意:模板 PYODBC 连接字符串 sql_connection_string_template_sqlalchemy_pyodbc您自带数据库时使用的 PYODBC 连接字符串 sqlalchemy_pyodbc_sql_connection_str 的名称不同。此外,当您使用自己的数据库时,模板 SQL sql_connection_string_templatesql_connection_str 的连接字符串名称也不同。
重要提示:
如果您有自己的数据库,并且您在input.json文件的processmining部分中使用sql_connection_strsqlalchemy_pyodbc_sql_connection_str连接字符串配置,则模板连接字符串sql_connection_string_templatesql_connection_string_template_sqlalchemy_pyodbc如果指定)将被忽略。
重要提示:
您必须使用默认服务器端口1433进行 Airflow 数据库连接。

不支持非标准 SQL Server 端口。

Automation Suite Robot 特定配置

Automation Suite Robot 可以使用包缓存来优化流程运行,并使其运行速度更快。NuGet 包从文件系统获取,而不是从 Internet/网络下载。这需要至少 10GiB 的额外空间,并且应分配给专用节点的主机文件系统上的文件夹。

要启用包缓存,您需要更新以下input.json参数:

参数

默认值

描述

packagecaching

true

设置为 true 时,机器人使用本地缓存进行包解析。

packagecachefolder

/uipath_asrobots_package_cache

存储包的无服务器代理节点上的磁盘位置。

AI Center 特定配置

为使 AI Center 正常运行,您必须在input.json文件中配置aicenter.external_object_storage.portaicenter.external_object_storage.fqdn参数。
注意:即使已配置文件的external_object_storage部分,您也必须在input.json文件的aicenter部分中配置参数。
以下示例显示了 AI Center 的有效input.json配置:
"aicenter": {
  "external_object_storage" {
    "port": 443,
    "fqdn": "s3.us-west-2.amazonaws.com"
  }
},
"external_object_storage": {
  "enabled": true,
  "create_bucket": false,
  "storage_type": "s3", 
  "region": "us-west-2", 
  "use_instance_profile": true
}
..."aicenter": {
  "external_object_storage" {
    "port": 443,
    "fqdn": "s3.us-west-2.amazonaws.com"
  }
},
"external_object_storage": {
  "enabled": true,
  "create_bucket": false,
  "storage_type": "s3", 
  "region": "us-west-2", 
  "use_instance_profile": true
}
...

此页面有帮助吗?

获取您需要的帮助
了解 RPA - 自动化课程
UiPath Community 论坛
Uipath Logo White
信任与安全
© 2005-2025 UiPath。保留所有权利。