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

OpenShift 上的 Automation Suite 安装指南

上次更新日期 2025年5月16日

安装和配置 GitOps 工具

备注:
在继续安装和配置 OpenShift GitOps 运算符之前,您必须安装 OpenShift 服务网格并为uipathadmin服务帐户提供所有必需的权限。

如果集群上已安装并可用,则可以使用专用于 UiPath™ 应用程序的 OpenShift GitOps运算符实例或共享的 OpenShift GitOps运算符实例来部署 Automation Suite。

我们建议使用专用的 OpenShift GitOps运算符实例来安装 Automation Suite 应用程序。 此方法需要对其他命名空间和集群资源的最低权限。

有关安装和访问说明,请参阅以下部分:

配置专用的 GitOps 实例

备注:
我们建议为 ArgoCD 使用与<uipath>不同的命名空间。
如果您使用 OpenShift GitOps 版本 1.15 或更高版本,并在<uipath>命名空间中安装 ArgoCD 的专用实例,则由于服务网格控制平面在<uipath>命名空间中添加的网络策略,将无法访问 ArgoCD 用户界面。要解决此问题,您必须添加网络策略(如以下示例所示),以允许 Ingress Pod 访问<uipath>命名空间中的 ArgoCD-server Pod。
kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:
  name: allow-argocd
spec:
  podSelector:
    matchLabels:
      app.kubernetes.io/name: argocd-server
  ingress:
    - from:
        - namespaceSelector:
            matchLabels:
              network.openshift.io/policy-group: ingress
  policyTypes:
    - Ingresskind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:
  name: allow-argocd
spec:
  podSelector:
    matchLabels:
      app.kubernetes.io/name: argocd-server
  ingress:
    - from:
        - namespaceSelector:
            matchLabels:
              network.openshift.io/policy-group: ingress
  policyTypes:
    - Ingress
要配置专用的 OpenShift GitOps 运算符实例,请执行以下步骤:
  1. 如果 <argocd> 命名空间尚不存在,请运行以下命令来创建命名空间:
    oc get namespace <argocd> || oc new-project <argocd>
    oc project <argocd>oc get namespace <argocd> || oc new-project <argocd>
    oc project <argocd>
  2. 按照安装 OpenShift GitOps 中的说明安装 OpenShift GitOps Orchestrator
  3. 按照设置新的 ArgoCD 实例中的说明创建一个新的 ArgoCD 实例
    注意:为 Argo CD 服务器和存储库服务器启用副本所述的spec部分中,您必须添加以下行:
    server.route.enabled: trueserver.route.enabled: true
  4. 修补 ArgoCD 部署:
    oc -n <argocd> patch deployment argocd-server \
      -p '{"spec":{"template":{"metadata":{"labels":{"maistra.io/expose-route":"true"}}}}}'oc -n <argocd> patch deployment argocd-server \
      -p '{"spec":{"template":{"metadata":{"labels":{"maistra.io/expose-route":"true"}}}}}'
  5. 创建角色,以便 ArgoCD 可以管理限制范围。 要创建角色,请执行以下步骤:
    1. 将以下角色配置保存为 YAML 文件:
      kind: Role
      apiVersion: rbac.authorization.k8s.io/v1
      metadata:
        name: limit-range-manager
        namespace: <uipath>
      rules:
        - apiGroups: ["*"]
          resources: ["limitranges"]
          verbs: ["get", "watch", "list", "patch", "update", "create"]kind: Role
      apiVersion: rbac.authorization.k8s.io/v1
      metadata:
        name: limit-range-manager
        namespace: <uipath>
      rules:
        - apiGroups: ["*"]
          resources: ["limitranges"]
          verbs: ["get", "watch", "list", "patch", "update", "create"]
      
    2. 通过运行以下命令来应用配置。 确保将<file_name.yaml>占位符替换为 YAML 文件的实际名称:
      oc apply -f <file_name.yaml>oc apply -f <file_name.yaml>
  6. limit-range-manager角色绑定到argocd服务帐户:
    oc -n <uipath> create rolebinding limit-range-manager-binding --role=limit-range-manager --serviceaccount=<argocd>:argocd-argocd-application-controlleroc -n <uipath> create rolebinding limit-range-manager-binding --role=limit-range-manager --serviceaccount=<argocd>:argocd-argocd-application-controller
  7. 如果您启用了 Process Mining - Dapr 或 Automation Suite Robot,则必须通过执行以下步骤为 ArgoCD 启用集群范围内模式:
    1. <openshift-gitops>中,编辑openshift-gitops-operator订阅资源以包含以下环境变量:
      ARGOCD_CLUSTER_CONFIG_NAMESPACES: <argocd>ARGOCD_CLUSTER_CONFIG_NAMESPACES: <argocd>
    2. 请按照使用 Argo CD 实例管理集群范围内的资源中的说明进行操作。

  8. 如果您启用 Process Mining - Dapr 或 Automation Suite Robot,则必须确保 ArgoCD 实例可以管理<uipath>命名空间:
    oc label namespace <uipath> argocd.argoproj.io/managed-by=<argocd>oc label namespace <uipath> argocd.argoproj.io/managed-by=<argocd>
    应用配置后,重新启动 ArgoCD application-controler (状态副本)和server (部署)。
  9. 仅当 <uipath> 命名空间与 <argocd> 命名空间不同时,才必须执行以下步骤。
    创建一个角色以管理 <argocd> 命名空间中的应用程序。 要创建角色,请执行以下步骤:
    1. 将以下角色配置保存为 YAML 文件:
      apiVersion: rbac.authorization.k8s.io/v1
      kind: Role
      metadata:
        name: uipath-application-manager
        namespace: <argocd>
      rules:
      - apiGroups:
        - argoproj.io
        resources:
        - applications
        verbs:
        - "*"apiVersion: rbac.authorization.k8s.io/v1
      kind: Role
      metadata:
        name: uipath-application-manager
        namespace: <argocd>
      rules:
      - apiGroups:
        - argoproj.io
        resources:
        - applications
        verbs:
        - "*"
    2. 通过运行以下命令来应用配置。 确保将<file_name.yaml>占位符替换为 YAML 文件的实际名称:
      oc apply -f <file_name.yaml>oc apply -f <file_name.yaml>
  10. uipath-application-manager角色绑定到uipathadmin服务帐户:
    oc project <argocd>
    oc create rolebinding uipath-application-manager \
      --role=uipath-application-manager --serviceaccount=<uipath>:uipathadminoc project <argocd>
    oc create rolebinding uipath-application-manager \
      --role=uipath-application-manager --serviceaccount=<uipath>:uipathadmin
  11. 创建角色,以便 uipathadmin 服务帐户可以在 <argocd> 命名空间中创建和编辑密码。 ArgoCD 应用程序需要此角色来更新 Helm 密码。 要创建角色,请执行以下步骤:
    1. 将以下角色配置保存为 YAML 文件:
      apiVersion: rbac.authorization.k8s.io/v1
      kind: Role
      metadata:
        name: argo-secret-role
        namespace: <argocd>
      rules:
        - apiGroups: ["rbac.authorization.k8s.io"]
          resources: ["roles", "rolebindings"]
          verbs: ["*"]
        - apiGroups: ["*"]
          resources: ["secrets"]
          verbs: ["get", "watch", "list", "patch", "update", "create"]apiVersion: rbac.authorization.k8s.io/v1
      kind: Role
      metadata:
        name: argo-secret-role
        namespace: <argocd>
      rules:
        - apiGroups: ["rbac.authorization.k8s.io"]
          resources: ["roles", "rolebindings"]
          verbs: ["*"]
        - apiGroups: ["*"]
          resources: ["secrets"]
          verbs: ["get", "watch", "list", "patch", "update", "create"]
    2. 通过运行以下命令来应用配置。 确保将<file_name.yaml>占位符替换为 YAML 文件的实际名称:
      oc apply -f <file_name.yaml>oc apply -f <file_name.yaml>
  12. argo-secret-role角色绑定到uipathadmin服务帐户:
    oc project <argocd>
    oc create rolebinding secret-binding \
      --role=argo-secret-role --serviceaccount=<uipath>:uipathadminoc project <argocd>
    oc create rolebinding secret-binding \
      --role=argo-secret-role --serviceaccount=<uipath>:uipathadmin
  13. <argocd>命名空间中的namespace-reader角色绑定到uipathadmin服务帐户:
    oc project <argocd>
    oc create rolebinding namespace-reader-rolebinding \
      --clusterrole=namespace-reader-clusterrole --serviceaccount=<uipath>:uipathadminoc project <argocd>
    oc create rolebinding namespace-reader-rolebinding \
      --clusterrole=namespace-reader-clusterrole --serviceaccount=<uipath>:uipathadmin

访问专用 ArgoCD 实例

要访问 ArgoCD,请执行以下步骤:

  1. 获取主机 URL:
    oc get routes argocd-server -n <argocd> -o jsonpath={.spec.host}; echooc get routes argocd-server -n <argocd> -o jsonpath={.spec.host}; echo
  2. 要登录,请使用admin作为用户名,然后运行以下命令以获取密码:
    oc -n <argocd> get secrets argocd-cluster \
      -o "jsonpath={.data['admin\.password']}" | base64 -d; echooc -n <argocd> get secrets argocd-cluster \
      -o "jsonpath={.data['admin\.password']}" | base64 -d; echo

在 ArgoCD 中配置私有 Helm 存储库和证书

要在 ArgoCD 中配置 Helm 存储库,请执行以下步骤:
  1. 登录到 ArgoCD。
  2. 导航至“设置” >“存储库” >“+CONNECT REPO”
  3. 使用VIA HTTPS作为连接方法。
  4. 选择“ Helm ” 作为类型。
  5. 提供名称。
  6. 选择“默认”为项目。
  7. 提供存储库 URL、用户名、密码和证书信息。
    重要提示:在“+连接 REPO”页面上添加 TLS 客户端证书时,TLS 客户端证书密钥将成为必填字段。要在不使用 TLS 客户端证书密钥的情况下配置注册表证书,请执行以下步骤:
    1. 导航至“设置” >“存储库证书和已知主机” >“+ 添加 TLS 证书”。

    2. 添加 PEM 格式的存储库名称和 TLS 证书。

  8. 启用“ OCI ”复选框。
  9. 选择“连接”
  10. 确保连接状态为 “成功”。

配置共享的 GitOps 实例

如果您的平台团队尚未配置共享的 OpenShift GitOps 运算符实例,请执行以下安装和配置步骤:
  1. 创建 <uipath> 命名空间:
    oc get namespace <uipath> || oc new-project <uipath>
    oc project <uipath>oc get namespace <uipath> || oc new-project <uipath>
    oc project <uipath>
  2. 按照安装 OpenShift GitOps 中的说明安装 OpenShift GitOps Orchestrator 。 此安装附带默认的 ArgoCD 实例,该实例名为openshift-gitops ,位于<openshift-gitops>命名空间。
  3. 通过执行以下步骤为 ArgoCD 启用集群范围内模式:
    1. <openshift-gitops>中,编辑openshift-gitops-operator订阅资源以包含以下环境变量:
      ARGOCD_CLUSTER_CONFIG_NAMESPACES: <openshift-gitops>ARGOCD_CLUSTER_CONFIG_NAMESPACES: <openshift-gitops>
    2. 请按照使用 ArgoCD 实例管理集群范围内的资源中的说明进行操作。

  4. 确保openshift-gitops ArgoCD 实例可以管理<uipath>命名空间:
    oc label namespace <uipath> argocd.argoproj.io/managed-by=openshift-gitopsoc label namespace <uipath> argocd.argoproj.io/managed-by=openshift-gitops
    应用配置后,重新启动 ArgoCD openshift-gitops-application-controller (状态副本)和openshift-gitops-server (部署)。
  5. 修补 ArgoCD 部署:
    oc -n <uipath> patch deployment argocd-server 
      -p '{"spec":{"template":{"metadata":{"labels":{"maistra.io/expose-route":"true"}}}}}'oc -n <uipath> patch deployment argocd-server 
      -p '{"spec":{"template":{"metadata":{"labels":{"maistra.io/expose-route":"true"}}}}}'
  6. 为 UiPath™ 应用程序创建一个 ArgoCD 项目:
    apiVersion: argoproj.io/v1alpha1
    kind: AppProject
    metadata:
      name: uipath
      namespace: <openshift-gitops>
    spec:
      description: Appproject to managed and deploy uipath applications
      clusterResourceWhitelist:
        - group: '*'
          kind: '*'
      destinations:
        - namespace: <uipath>
          server: https://kubernetes.default.svc
        - namespace: <istio-system>
          server: https://kubernetes.default.svc
      sourceNamespaces:
        - <openshift-gitops>
      sourceRepos:
        - '*'apiVersion: argoproj.io/v1alpha1
    kind: AppProject
    metadata:
      name: uipath
      namespace: <openshift-gitops>
    spec:
      description: Appproject to managed and deploy uipath applications
      clusterResourceWhitelist:
        - group: '*'
          kind: '*'
      destinations:
        - namespace: <uipath>
          server: https://kubernetes.default.svc
        - namespace: <istio-system>
          server: https://kubernetes.default.svc
      sourceNamespaces:
        - <openshift-gitops>
      sourceRepos:
        - '*'
  7. 创建角色,以便 ArgoCD 可以管理限制范围。 要创建角色,请执行以下步骤:
    1. 将以下角色配置保存为 YAML 文件:

      kind: Role
      apiVersion: rbac.authorization.k8s.io/v1
      metadata:
        name: limit-range-manager
        namespace: <uipath>
      rules:
        - apiGroups: ["*"]
          resources: ["limitranges"]
          verbs: ["get", "watch", "list", "patch", "update", "create"]kind: Role
      apiVersion: rbac.authorization.k8s.io/v1
      metadata:
        name: limit-range-manager
        namespace: <uipath>
      rules:
        - apiGroups: ["*"]
          resources: ["limitranges"]
          verbs: ["get", "watch", "list", "patch", "update", "create"]
      
    2. 通过运行以下命令来应用配置。 确保将<file_name.yaml>占位符替换为 YAML 文件的实际名称:
      oc apply -f <file_name.yaml>oc apply -f <file_name.yaml>
  8. limit-range-manager角色绑定到argocd服务帐户:
    oc -n <uipath> create rolebinding limit-range-manager-binding --role=limit-range-manager --serviceaccount=<openshift-gitops>:openshift-gitops-argocd-application-controlleroc -n <uipath> create rolebinding limit-range-manager-binding --role=limit-range-manager --serviceaccount=<openshift-gitops>:openshift-gitops-argocd-application-controller
  9. 创建角色以管理<openshift-gitops>命名空间中的应用程序:
    apiVersion: rbac.authorization.k8s.io/v1
    kind: Role
    metadata:
      name: uipath-application-manager
      namespace: <openshift-gitops>
    rules:
    - apiGroups:
      - argoproj.io
      resources:
      - applications
      verbs:
      - "*"apiVersion: rbac.authorization.k8s.io/v1
    kind: Role
    metadata:
      name: uipath-application-manager
      namespace: <openshift-gitops>
    rules:
    - apiGroups:
      - argoproj.io
      resources:
      - applications
      verbs:
      - "*"
  10. uipath-application-manager角色绑定到uipathadmin服务帐户:
    oc project <openshift-gitops>
    oc create rolebinding uipath-application-manager \
      --role=uipath-application-manager --serviceaccount=<uipath>:uipathadminoc project <openshift-gitops>
    oc create rolebinding uipath-application-manager \
      --role=uipath-application-manager --serviceaccount=<uipath>:uipathadmin
  11. 创建角色,以便 ArgoCD 可以在<openshift-gitops>命名空间中创建和编辑密码。 ArgoCD 应用程序需要此角色来更新 Helm 密码。 以下示例显示了角色的有效配置:
    apiVersion: rbac.authorization.k8s.io/v1
    kind: Role
    metadata:
      name: argo-secret-role
      namespace: <openshift-gitops>
    rules:
      - apiGroups: ["rbac.authorization.k8s.io"]
        resources: ["roles", "rolebindings"]
        verbs: ["*"]
      - apiGroups: ["*"]
        resources: ["secrets"]
        verbs: ["get", "watch", "list", "patch", "update", "create"]apiVersion: rbac.authorization.k8s.io/v1
    kind: Role
    metadata:
      name: argo-secret-role
      namespace: <openshift-gitops>
    rules:
      - apiGroups: ["rbac.authorization.k8s.io"]
        resources: ["roles", "rolebindings"]
        verbs: ["*"]
      - apiGroups: ["*"]
        resources: ["secrets"]
        verbs: ["get", "watch", "list", "patch", "update", "create"]
  12. argo-secret-role角色绑定到uipathadmin服务帐户:
    oc project <openshift-gitops>
    oc create rolebinding secret-binding \
      --role=argo-secret-role --serviceaccount=<uipath>:uipathadminoc project <openshift-gitops>
    oc create rolebinding secret-binding \
      --role=argo-secret-role --serviceaccount=<uipath>:uipathadmin
  13. <openshift-gitops>命名空间中的namespace-reader角色绑定到uipathadmin服务帐户:
    oc project <openshift-gitops>
    oc create rolebinding namespace-reader-rolebinding \
      --clusterrole=namespace-reader-clusterrole --serviceaccount=<uipath>:uipathadminoc project <openshift-gitops>
    oc create rolebinding namespace-reader-rolebinding \
      --clusterrole=namespace-reader-clusterrole --serviceaccount=<uipath>:uipathadmin
除了完成为 Automation Suite 安装配置共享 ArgoCD 实例的步骤外,您还必须将以下参数添加到input.json文件中:
"argocd": {
    "project": "<uipath>"
  },  "argocd": {
    "project": "<uipath>"
  },

访问共享的 ArgoCD 实例

要访问 ArgoCD,请执行以下步骤:

  1. 通过运行以下命令获取主机 URL:
    oc get routes openshift-gitops-server -n <openshift-gitops> -o jsonpath={.spec.host}; echooc get routes openshift-gitops-server -n <openshift-gitops> -o jsonpath={.spec.host}; echo
  2. 要登录,请使用admin作为用户名,然后运行以下命令以获取密码:
    oc -n <openshift-gitops> get secrets openshift-gitops-cluster \
      -o "jsonpath={.data['admin\.password']}" | base64 -d; echooc -n <openshift-gitops> get secrets openshift-gitops-cluster \
      -o "jsonpath={.data['admin\.password']}" | base64 -d; echo

在 ArgoCD 中配置私有 Helm 存储库和证书

要在 ArgoCD 中配置 Helm 存储库,请执行以下步骤:
  1. 登录到 ArgoCD。
  2. 导航至“设置” >“存储库” >“+CONNECT REPO”
  3. 使用VIA HTTPS作为连接方法。
  4. 选择“ Helm ” 作为类型。
  5. 提供名称。
  6. 选择UiPath作为项目。 uipath是您为 UiPath™ 应用程序创建的 ArgoCD 项目的名称。
  7. 提供存储库 URL、用户名、密码和证书信息。
    重要提示:在“+连接 REPO”页面上添加 TLS 客户端证书时,TLS 客户端证书密钥将成为必填字段。要在不使用 TLS 客户端证书密钥的情况下配置注册表证书,请执行以下步骤:
    1. 导航至“设置” >“存储库证书和已知主机” >“+ 添加 TLS 证书”。

    2. 添加 PEM 格式的存储库名称和 TLS 证书。

  8. 启用“ OCI ”复选框。
  9. 选择“连接”
  10. 确保连接状态为 “成功”。

为单个集群中的多个安装配置 ArgoCD

要为单个 OpenShift 集群中的多个 Automation Suite 安装配置 ArgoCD,请执行以下步骤:

  1. 检查 ArgoCD 的所有服务是否都已启动且正在运行。您可以运行以下命令来监控所有 Pod:
    oc get pods -n <argocdNamespace>oc get pods -n <argocdNamespace>
  2. 所有服务启动并正在运行后,您可以按顺序使用以下命令来修补 ArgoCD 的权限。这使 ArgoCD 可以管理安装了 Automation Suite 的不同应用程序命名空间:
    oc patch appprojects.argoproj.io default -n <argocdNamespace> --type='merge' -p '{"spec": {"sourceNamespaces": ["*"]}}'
    oc patch configmaps argocd-cmd-params-cm -n <argocdNamespace> --type='merge' -p '{"data": {"application.namespaces": "*"}}'
    oc rollout restart -n <argocdNamespace> deployment argocd-server
    oc rollout restart -n <argocdNamespace> statefulset argocd-application-controlleroc patch appprojects.argoproj.io default -n <argocdNamespace> --type='merge' -p '{"spec": {"sourceNamespaces": ["*"]}}'
    oc patch configmaps argocd-cmd-params-cm -n <argocdNamespace> --type='merge' -p '{"data": {"application.namespaces": "*"}}'
    oc rollout restart -n <argocdNamespace> deployment argocd-server
    oc rollout restart -n <argocdNamespace> statefulset argocd-application-controller

此页面有帮助吗?

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