UiPath Documentation
automation-suite
2.2510
true
OpenShift 上的 Automation Suite 安装指南
重要 :
请注意,此内容已使用机器翻译进行了部分本地化。 新发布内容的本地化可能需要 1-2 周的时间才能完成。

安装外部 Secrets Orchestrator

安装外部 Secrets Operator,以将外部密码管理系统与 Automation Suite 集成。

备注:

仅当您要将敏感凭据存储在外部密码管理系统中时,才需要执行此步骤。

重要提示:

默认情况下,Automation Suite 包含 External Secrets Operator。

如果您选择不使用捆绑版本,则可以按照本节中描述的步骤安装自己的外部密码运算符实例。

外部密码运算符 (ESO) 是一个 Kubernetes 运算符,可与外部密码管理系统(例如 AWS Secrets Manager、HashiCorp 保险库)集成。它从外部密码后端读取数据,并自动创建和同步原生 Kubernetes 密码。

Automation Suite 支持将 Azure Key Vault、HashiCorp 保险库和 AWS Secrets Manager 作为外部密码提供程序。

添加外部密码 Helm 存储库​

您必须将外部密码 Helm 存储库添加到 Helm 安装中,如下所示:

helm repo add external-secrets https://charts.external-secrets.io
helm repo add external-secrets https://charts.external-secrets.io

添加存储库后,您必须更新 Helm 存储库以获取最新的图表信息,如下所示:

helm repo update
helm repo update

OpenShift:配置安全性上下文约束​

在 OpenShift 上,“外部 Secrets运算符”Pod 需要权限才能在默认的受限 UID 范围之外运行。在安装运算符之前,您必须向 ESO 服务帐户授予 anyuid 安全上下文约束 (SCC)。

要配置 SCC,请执行以下步骤:

  1. 将以下内容保存在名为eso-anyuid-role.yaml文件中,以创建向 anyuid 安全上下文约束授予访问权限的角色:

    kind: Role
    apiVersion: rbac.authorization.k8s.io/v1
    metadata:
      name: eso-anyuid-role
      namespace: external-secrets
    rules:
      - verbs:
          - use
        apiGroups:
          - security.openshift.io
        resources:
          - securitycontextconstraints
        resourceNames:
          - anyuid
    kind: Role
    apiVersion: rbac.authorization.k8s.io/v1
    metadata:
      name: eso-anyuid-role
      namespace: external-secrets
    rules:
      - verbs:
          - use
        apiGroups:
          - security.openshift.io
        resources:
          - securitycontextconstraints
        resourceNames:
          - anyuid
    
  2. 通过运行以下命令创建角色:

    oc apply -f eso-anyuid-role.yaml
    oc apply -f eso-anyuid-role.yaml
    
  3. 将以下内容保存在名为eso-anyuid-rolebinding.yaml的文件中,以创建一个将角色绑定到所有三个 ESO 服务帐户的角色绑定:

    kind: RoleBinding
    apiVersion: rbac.authorization.k8s.io/v1
    metadata:
      name: eso-anyuid-rolebinding
      namespace: external-secrets
    subjects:
      - kind: ServiceAccount
        name: external-secrets
        namespace: external-secrets
      - kind: ServiceAccount
        name: external-secrets-cert-controller
        namespace: external-secrets
      - kind: ServiceAccount
        name: external-secrets-webhook
        namespace: external-secrets
    roleRef:
      apiGroup: rbac.authorization.k8s.io
      kind: Role
      name: eso-anyuid-role
    kind: RoleBinding
    apiVersion: rbac.authorization.k8s.io/v1
    metadata:
      name: eso-anyuid-rolebinding
      namespace: external-secrets
    subjects:
      - kind: ServiceAccount
        name: external-secrets
        namespace: external-secrets
      - kind: ServiceAccount
        name: external-secrets-cert-controller
        namespace: external-secrets
      - kind: ServiceAccount
        name: external-secrets-webhook
        namespace: external-secrets
    roleRef:
      apiGroup: rbac.authorization.k8s.io
      kind: Role
      name: eso-anyuid-role
    
  4. 通过运行以下命令创建“角色绑定”:

    oc apply -f eso-anyuid-rolebinding.yaml
    oc apply -f eso-anyuid-rolebinding.yaml
    
重要提示:

在安装运算符之前,您必须创建external-secrets命名空间并应用这些资源。如果 ESO Pod 已经由于违反 SCC 而失败,请应用角色和角色绑定,然后删除失败的 Pod 以触发重新创建。

安装外部 Secrets Orchestrator​

您必须使用 v0.16.2 或更高版本部署外部密码运算符。Automation Suite 需要外部密码运算符版本 v0.16.2 作为最低支持版本,其中包括 ESO v1 API。

先创建命名空间(如果在 SCC 步骤中尚未创建),然后安装运算符:

oc create namespace external-secrets --dry-run=client -o yaml | oc apply -f -
helm install external-secrets \
  external-secrets/external-secrets \
  -n external-secrets \
  --version 0.16.2
oc create namespace external-secrets --dry-run=client -o yaml | oc apply -f -
helm install external-secrets \
  external-secrets/external-secrets \
  -n external-secrets \
  --version 0.16.2

外部密码运算符需要访问uipath命名空间才能正常运行。

OpenShift:创建网络策略​

在 OpenShift 上,您必须创建以下网络策略以允许 API 服务器访问 ESO Webhook:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: allow-apiserver-to-eso-webhook
  namespace: external-secrets
spec:
  podSelector:
    matchLabels:
      app.kubernetes.io/name: external-secrets-webhook
  ingress:
  - ports:
    - port: 10250
      protocol: TCP
  policyTypes:
  - Ingress
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: allow-apiserver-to-eso-webhook
  namespace: external-secrets
spec:
  podSelector:
    matchLabels:
      app.kubernetes.io/name: external-secrets-webhook
  ingress:
  - ports:
    - port: 10250
      protocol: TCP
  policyTypes:
  - Ingress

通过运行以下命令应用网络策略:

oc apply -f allow-apiserver-to-eso-webhook.yaml
oc apply -f allow-apiserver-to-eso-webhook.yaml
备注:

如果安装使用非默认端口,请将spec.ingress[0].ports[0].port更新为适当的 Webhook 端口。

验证安装​

安装后,您必须验证运算符 Pod 是否正在运行,如下所示:

kubectl get pods -n external-secrets
kubectl get pods -n external-secrets

您应该会看到类似于以下示例的输出:

NAME                                               READY   STATUS    RESTARTS   AGE
external-secrets-7d8c9b5f9f-abc12                  1/1     Running   0          30s
external-secrets-cert-controller-6d8f7b9c-def34    1/1     Running   0          30s
external-secrets-webhook-8c9d7f6e5-ghi56           1/1     Running   0          30s
NAME                                               READY   STATUS    RESTARTS   AGE
external-secrets-7d8c9b5f9f-abc12                  1/1     Running   0          30s
external-secrets-cert-controller-6d8f7b9c-def34    1/1     Running   0          30s
external-secrets-webhook-8c9d7f6e5-ghi56           1/1     Running   0          30s

如果所有 Pod 都显示“正在运行”状态,则安装已完成。

如果任何 Pod 显示CreateContainerConfigError或CrashLoopBackOff ,并在事件中出现与 SCC 相关的错误,请验证是否正确应用了 SCC 配置步骤中的角色和角色绑定:

oc get role eso-anyuid-role -n external-secrets
oc get rolebinding eso-anyuid-rolebinding -n external-secrets
oc get events -n external-secrets --sort-by='.lastTimestamp' | grep -i scc
oc get role eso-anyuid-role -n external-secrets
oc get rolebinding eso-anyuid-rolebinding -n external-secrets
oc get events -n external-secrets --sort-by='.lastTimestamp' | grep -i scc

此页面有帮助吗?

连接

需要帮助? 支持

想要了解详细内容? UiPath Academy

有问题? UiPath 论坛

保持更新