automation-suite
2023.10
true
EKS/AKS 上的 Automation Suite 安装指南
Last updated 2024年10月4日

在 ArgoCD 中管理集群

概述

ArgoCD 是用于 Kubernetes 的声明性 GitOps 持续交付工具。它被设计为 Kubernetes 控制器,可持续监控正在运行的 UiPath™ 应用程序,并根据 Docker 注册表中指定的所需目标状态检查当前状态。有关更多详细信息,请参阅 ArgoCD 文档

管理员可以通过简单的用户界面或 CLI 概览集群、配置、应用程序状态和运行状况。 ArgoCD 附带自己的开源捆绑 Redis,该 Redis 支持 HA 和非 HA 配置。

Automation Suite 在以下场景中使用 ArgoCD:

  • 安装和升级 Fabric 组件和核心 UiPath™ 服务。
  • 在指定目标环境中自动部署所需的应用程序状态。 ArgoCD 遵循 GitOps 模式,即使用 Git/helm 存储库作为定义所需应用程序状态的事实来源。
  • 跟踪安装状态。 如果安装在特定点失败,并且您在一段时间后继续安装,则 ArgoCD 将跳过已同步的所有步骤,并从失败点继续。
  • 对应用程序进行自我修复。 如果您错误地删除了任何对象,则清单将自动同步。

ArgoCD 只读方案

您可以在以下 只读场景中使用 ArgoCD 帐户:

  • 在一个简单的界面中可视化所有应用程序、Pod 和服务;
  • 监控所有应用程序、Pod 和服务的运行状况;
  • 快速识别部署中的问题;
  • 正在重新同步集群中的应用程序。

ArgoCD 高级场景

重要提示: 不得修改本节中列出的设置或参数以外的任何其他设置或参数。

您可以在以下高级场景中使用 ArgoCD 管理员帐户:

  • 更改参数仅用于调试目的;例如,禁用自我修复;
  • 删除 Pod;
  • 故障排除
  • 管理 Orchestrator 自定义配置;例如,为每个租户设置加密密钥
  • 更新数据库连接字符串
  • 正在同步应用程序。
    注意:在删除或更改用户界面上的高级配置之前,请务必参阅适当的 UiPath™ 文档。

访问 ArgoCD

ArgoCD 支持两种身份验证方法:

  • 用户名和密码 – 默认身份验证方法;
  • SSO – 推荐的身份验证方法。您可以在安装后启用 SSO 身份验证。有关说明,请参阅为 ArgoCD 启用 SSO

用户名和密码身份验证

访问 ArgoCD 管理员帐户

要使用用户名和密码访问 ArgoCD 管理员帐户,请执行以下步骤:

  1. 访问以下 URL: https://alm.${CONFIG_CLUSTER_FQDN}
  2. 输入以下用户名:“admin”。
  3. 访问密码:
    kubectl get secret -n argocd argocd-initial-admin-secret -o jsonpath='{.data.password}'  | base64 -dkubectl get secret -n argocd argocd-initial-admin-secret -o jsonpath='{.data.password}'  | base64 -d
  4. 输入您的密码。
    重要提示: 您必须仅将 ArgoCD 管理员帐户用于高级方案。 如果不小心使用,它可能会导致对集群的破坏性操作。

SSO 身份验证

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

  1. 单击 ArgoCD 登录页面上的 SSO 按钮。
  2. 输入公司域凭据。

为 ArgoCD 启用 SSO

概述

要启用 SSO 身份验证,必须使用 uipathctl 命令行工具。

准备配置文件

在为 ArgoCD 启用 SSO 之前,您必须生成 RBAC 文件。

RBAC 文件

RBAC 文件包含访问规则。

有关内置角色定义的详细信息,请参阅 ArgoCD 文档

有关 ArgoCD 帐户类型及其权限的详细信息,请参阅在 ArgoCD 中管理集群

我们建议在定义组时使用这些角色,但您可以创建自己的权限集。

配置 RBAC 文件
  1. 通过运行以下命令,创建名为 policy.csv 的文件:
    uipathctl config argocd generate-rbacuipathctl config argocd generate-rbac
  2. 将以下内容添加到 policy.csv 文件中并保存:
    p, role:uipath-sync, applications, get, */*, allow
    p, role:uipath-sync, applications, sync, */*, allow
    g, argocdro, role:uipath-syncp, role:uipath-sync, applications, get, */*, allow
    p, role:uipath-sync, applications, sync, */*, allow
    g, argocdro, role:uipath-sync
  3. 通过将以下行附加到 policy.csv RBAC 文件,将 RBAC 组与内置管理员角色和 UiPath™ argocdro 只读角色相关联:
    g, <your_ldap_readonly_group_name>, role:uipath-sync
    g, <your_ldap_admin_group_name>, role:adming, <your_ldap_readonly_group_name>, role:uipath-sync
    g, <your_ldap_admin_group_name>, role:admin
  4. 保存更新的policy.csv RBAC 文件。
  5. argo-cd-rbac-cm 配置映射图的 policy.csv 部分下方创建一个名为 policy.default 的新部分,如以下示例所示:
    policy.csv: |
        p, role:org-admin, applications, *, /, allow
        p, role:org-admin, clusters, get, *, allow
        p, role:org-admin, repositories, get, *, allow
        p, role:org-admin, repositories, create, *, allow
        p, role:org-admin, repositories, update, *, allow
        p, role:org-admin, repositories, delete, *, allow
        g, "694afc07-6767-8998-bf84-ab80b53379df", role:org-admin # (azure group assigned to role)
      policy.default: role:readonlypolicy.csv: |
        p, role:org-admin, applications, *, /, allow
        p, role:org-admin, clusters, get, *, allow
        p, role:org-admin, repositories, get, *, allow
        p, role:org-admin, repositories, create, *, allow
        p, role:org-admin, repositories, update, *, allow
        p, role:org-admin, repositories, delete, *, allow
        g, "694afc07-6767-8998-bf84-ab80b53379df", role:org-admin # (azure group assigned to role)
      policy.default: role:readonly
  6. 请按照 ArgoCD 文档中的说明使用 OIDC 配置 SSO

示例:

如果 ArgoCD 管理员的 LDAP 组是管理员,而 ArgoCD 只读用户的 LDAP 组是读取者,则 RBAC 文件应类似于以下示例:

p, role:uipath-sync, applications, get, */*, allow
p, role:uipath-sync, applications, sync, */*, allow
g, argocdro, role:uipath-sync
g, Readers, role:uipath-sync
g, Administrators, role:adminp, role:uipath-sync, applications, get, */*, allow
p, role:uipath-sync, applications, sync, */*, allow
g, argocdro, role:uipath-sync
g, Readers, role:uipath-sync
g, Administrators, role:admin

对于更高级的用例,以下示例显示了默认的 RBAC 文件:

# Built-in policy which defines two roles: role:readonly and role:admin,
# and additionally assigns the admin user to the role:admin role.
# There are two policy formats:
# 1. Applications, logs, and exec (which belong to a project):
# p, <user/group>, <resource>, <action>, <project>/<object>
# 2. All other resources:
# p, <user/group>, <resource>, <action>, <object>

p, role:readonly, applications, get, */*, allow
p, role:readonly, certificates, get, *, allow
p, role:readonly, clusters, get, *, allow
p, role:readonly, repositories, get, *, allow
p, role:readonly, projects, get, *, allow
p, role:readonly, accounts, get, *, allow
p, role:readonly, gpgkeys, get, *, allow
p, role:readonly, logs, get, */*, allow

p, role:admin, applications, create, */*, allow
p, role:admin, applications, update, */*, allow
p, role:admin, applications, delete, */*, allow
p, role:admin, applications, sync, */*, allow
p, role:admin, applications, override, */*, allow
p, role:admin, applications, action/*, */*, allow
p, role:admin, applicationsets, get, */*, allow
p, role:admin, applicationsets, create, */*, allow
p, role:admin, applicationsets, update, */*, allow
p, role:admin, applicationsets, delete, */*, allow
p, role:admin, certificates, create, *, allow
p, role:admin, certificates, update, *, allow
p, role:admin, certificates, delete, *, allow
p, role:admin, clusters, create, *, allow
p, role:admin, clusters, update, *, allow
p, role:admin, clusters, delete, *, allow
p, role:admin, repositories, create, *, allow
p, role:admin, repositories, update, *, allow
p, role:admin, repositories, delete, *, allow
p, role:admin, projects, create, *, allow
p, role:admin, projects, update, *, allow
p, role:admin, projects, delete, *, allow
p, role:admin, accounts, update, *, allow
p, role:admin, gpgkeys, create, *, allow
p, role:admin, gpgkeys, delete, *, allow
p, role:admin, exec, create, */*, allow

g, role:admin, role:readonly
g, admin, role:admin# Built-in policy which defines two roles: role:readonly and role:admin,
# and additionally assigns the admin user to the role:admin role.
# There are two policy formats:
# 1. Applications, logs, and exec (which belong to a project):
# p, <user/group>, <resource>, <action>, <project>/<object>
# 2. All other resources:
# p, <user/group>, <resource>, <action>, <object>

p, role:readonly, applications, get, */*, allow
p, role:readonly, certificates, get, *, allow
p, role:readonly, clusters, get, *, allow
p, role:readonly, repositories, get, *, allow
p, role:readonly, projects, get, *, allow
p, role:readonly, accounts, get, *, allow
p, role:readonly, gpgkeys, get, *, allow
p, role:readonly, logs, get, */*, allow

p, role:admin, applications, create, */*, allow
p, role:admin, applications, update, */*, allow
p, role:admin, applications, delete, */*, allow
p, role:admin, applications, sync, */*, allow
p, role:admin, applications, override, */*, allow
p, role:admin, applications, action/*, */*, allow
p, role:admin, applicationsets, get, */*, allow
p, role:admin, applicationsets, create, */*, allow
p, role:admin, applicationsets, update, */*, allow
p, role:admin, applicationsets, delete, */*, allow
p, role:admin, certificates, create, *, allow
p, role:admin, certificates, update, *, allow
p, role:admin, certificates, delete, *, allow
p, role:admin, clusters, create, *, allow
p, role:admin, clusters, update, *, allow
p, role:admin, clusters, delete, *, allow
p, role:admin, repositories, create, *, allow
p, role:admin, repositories, update, *, allow
p, role:admin, repositories, delete, *, allow
p, role:admin, projects, create, *, allow
p, role:admin, projects, update, *, allow
p, role:admin, projects, delete, *, allow
p, role:admin, accounts, update, *, allow
p, role:admin, gpgkeys, create, *, allow
p, role:admin, gpgkeys, delete, *, allow
p, role:admin, exec, create, */*, allow

g, role:admin, role:readonly
g, admin, role:admin

为 ArgoCD 启用 SSO

准备好 RBAC 文件后,您可以为 ArgoCD 启用 SSO:

  1. 将以下行添加到 input.json 文件中:

    {
    "fabric": {
    "argocd_rbac_config_file": "/path/to/policy.csv"
      }
    }{
    "fabric": {
    "argocd_rbac_config_file": "/path/to/policy.csv"
      }
    }
  2. 通过运行 以下命令应用配置:
    uipathctl manifest apply input.json --versions versions.jsonuipathctl manifest apply input.json --versions versions.json

此页面有帮助吗?

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