UiPath Documentation
automation-suite
2.2510
true
OpenShift の Automation Suite のインストール ガイド
重要 :
このコンテンツの一部は機械翻訳によって処理されており、完全な翻訳を保証するものではありません。 新しいコンテンツの翻訳は、およそ 1 ~ 2 週間で公開されます。

クラスター ロールなしでインストール権限を付与する

Automation Suite インストーラーに OpenShift に対する名前空間範囲の権限を付与し、クラスター範囲の不足しているロールを事前に作成されたリソースで補います。

重要:

このページは、セキュリティ ポリシーによって、Automation Suite インストーラー サービス アカウント (uipathadmin) へのクラスター スコープの権限 (ClusterRole または ClusterRoleBinding) の付与が禁止されている場合にのみ適用されます。クラスター スコープの権限を付与できる場合は、代わりに「 クラスター ロールを使用してインストール権限を付与する」 をご覧ください。

同じクラスターに複数の Automation Suite インスタンスをインストールする場合、Automation Suite をインストールする他の名前空間に 権限を付与する必要があります。

このページでは、クラスター範囲の権限 を割り当てずに 、Automation Suite インストーラーに必要な権限を付与する方法について説明します。

uipathadmin サービス アカウントは名前空間のみの範囲で保持されます。つまり、クラスター スコープの 2 つの ClusterRole リソースと標準フローで使用されるClusterRoleBindingはスキップし、不足しているクラスター スコープの読み取りは、事前に作成された一連のリソースとuipathctl フラグで補います。

注:

本セクションで参照するコマンドは、OpenShift Kubernetes API サーバーにアクセスできる Linux、Windows、または macOS マシンから実行する必要があります。

管理アクション (証明書 Secretの作成) を実行するコマンドは、クラスター管理者が実行する必要があります。uipathadminアクションを実行するコマンドは、手順 4 で生成したkubeconfigを使用します。

クラスター ロールなしでインストール権限を付与するには、次の手順を実行します。

  1. サービス アカウントの作成
  2. 必要な名前空間範囲のロールを作成する
  3. ロールをバインドする
  4. kubeconfig ファイルを生成する
  5. 制限付きモードで動作するための input.json の構成
  6. TLS 証明書シークレットを事前に作成する
  7. サービス メッシュと GitOps ツールをインストールおよび構成する

手順 1: サービス アカウントを作成する​

サービス アカウントを作成するには、以下の手順に従います。

  1. <uipath>名前空間とプロジェクトを作成します。

    oc get namespace <uipath> || oc new-project <uipath>
    oc get namespace <uipath> || oc new-project <uipath>
    
  2. 既定の名前空間とプロジェクトを に設定します <uipath>。

    oc project <uipath>
    oc project <uipath>
    

    以降の oc コマンドはすべて、 <uipath> 名前空間内で動作します。

  3. という名前のサービス アカウントを作成しますuipathadmin

    oc create serviceaccount uipathadmin
    oc create serviceaccount uipathadmin
    
  4. 既存の admin クラスター ロールを使用して、<uipath> 名前空間の uipathadmin サービス アカウントに管理者権限を付与します。

    oc create rolebinding uipathadmin --clusterrole=admin --serviceaccount=<uipath>:uipathadmin
    oc create rolebinding uipathadmin --clusterrole=admin --serviceaccount=<uipath>:uipathadmin
    
    注:

    これは、組み込みの admin クラスター ロールを参照する、名前空間範囲のRoleBindingです。uipathadmin管理者権限は、<uipath> 名前空間内でのみ付与され、クラスター全体には付与されません。ClusterRoleBindingは作成されません。

手順 2: 必要な名前空間範囲のロールを作成する​

uipathadmin サービス アカウントには、Automation Suite のインストール時に特定の権限が必要です。no-cluster-roles フローでは、 名前空間スコープの ロールのみを使用してこれらの権限を付与します。

各ロールを作成するには、その構成を YAML ファイルとして保存し、次のコマンドを実行して、 <file_name.yaml> プレースホルダーを YAML ファイルの実際の名前に置き換えます。

oc apply -f <file_name.yaml>
oc apply -f <file_name.yaml>

ロールごとに YAML ファイルを作成するには、以下のセクションの構成をコピーします。

このフローで必要なロールは、次の名前空間 uipathadmin 範囲のロールだけです。クラスター スコープの読み取りに依存する前提条件のチェックは除外され、「 クラスター ロールなしで前提条件のチェックを実行する」で説明されているように、帯域外で検証されます。

<uipath> 名前空間​でのインストール権限

Automation Suite のインストールのほとんどは ArgoCD を介して実行されますが、一部のコンポーネントは Helm グラフを使用して直接インストールされます。uipathctl ツールは、<uipath> 名前空間でこれらの Helm インストールを実行するインストール ジョブを実行します。そのためには uipathadmin 、ロール、ロールのバインド、シークレット、構成マップを作成および管理できる、名前空間範囲のロールが必要です。

次の例に、 uipath-automationsuite-role の設定を示します。

apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  name: uipath-automationsuite-role
  namespace: <uipath>
rules:
  - apiGroups: ["rbac.authorization.k8s.io"]
    resources: ["roles", "rolebindings"]
    verbs: ["get", "watch", "list", "patch", "update", "create", "delete"]
  - apiGroups: [""]
    resources: ["secrets", "configmaps"]
    verbs: ["get", "watch", "list", "patch", "update", "create", "delete"]
  - apiGroups: ["security.istio.io", "networking.istio.io"]
    resources: ["*"]
    verbs: ["get", "watch", "list", "patch", "update", "create", "delete"]
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  name: uipath-automationsuite-role
  namespace: <uipath>
rules:
  - apiGroups: ["rbac.authorization.k8s.io"]
    resources: ["roles", "rolebindings"]
    verbs: ["get", "watch", "list", "patch", "update", "create", "delete"]
  - apiGroups: [""]
    resources: ["secrets", "configmaps"]
    verbs: ["get", "watch", "list", "patch", "update", "create", "delete"]
  - apiGroups: ["security.istio.io", "networking.istio.io"]
    resources: ["*"]
    verbs: ["get", "watch", "list", "patch", "update", "create", "delete"]

<istio-system> 名前空間​での証明書と検証の権限

注:

Istio をまだインストールしていない場合、クラスターに名前空間が存在しない可能性があります。名前空間とロールは Istio をインストールする前に作成することも、Istio のインストール後に作成することもできます。

<istio-system> 名前空間では次の操作が実行されます。

  1. Automation Suite の前提条件チェック ツールは、 <istio-system> 名前空間のポッドとサービスを読み取り、Istio が正しくインストールおよび構成されていることを検証します。
  2. 証明書ファイルを <istio-system> 名前空間から <uipath> 名前空間にコピーするには、 get secrets 権限が必要です。

uipathadmin は Istio を設定したり、クラスタ ロールなしのフローで WebAssembly (WASM) プラグインをインストールしたりしないため、このロールの読み取り専用バリアントを使用します。代わりに、クラスター管理者がこれらの操作を実行します ( 手順 7 を参照)。

次の例に、 istio-system-automationsuite-role の設定を示します。

apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  name: istio-system-automationsuite-role
  namespace: <istio-system>
rules:
  - apiGroups: [""]
    resources: ["services", "pods"]
    verbs: ["list"]
  - apiGroups: [""]
    resources: ["secrets"]
    resourceNames: ["istio-ingressgateway-certs"]
    verbs: ["get"]
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  name: istio-system-automationsuite-role
  namespace: <istio-system>
rules:
  - apiGroups: [""]
    resources: ["services", "pods"]
    verbs: ["list"]
  - apiGroups: [""]
    resources: ["secrets"]
    resourceNames: ["istio-ingressgateway-certs"]
    verbs: ["get"]

ステップ 3: ロールをバインドする​

次のコマンドを実行して、前の手順で作成した名前空間範囲のロールを uipathadmin サービス アカウントにバインドします。

oc project <istio-system>
oc create rolebinding istio-system-automationsuite-rolebinding \
  --role=istio-system-automationsuite-role --serviceaccount=<uipath>:uipathadmin
oc project <uipath>
oc create rolebinding uipath-automationsuite-rolebinding \
  --role=uipath-automationsuite-role --serviceaccount=<uipath>:uipathadmin
oc project <istio-system>
oc create rolebinding istio-system-automationsuite-rolebinding \
  --role=istio-system-automationsuite-role --serviceaccount=<uipath>:uipathadmin
oc project <uipath>
oc create rolebinding uipath-automationsuite-rolebinding \
  --role=uipath-automationsuite-role --serviceaccount=<uipath>:uipathadmin

手順 4: kubeconfig ファイルを生成する​

すべての権限をサービス アカウントに割り当てたら、インストールのために uipathctl ツールに渡す kubeconfig ファイルを作成する必要があります。

Linux または Mac で kubeconfig ファイルを生成する​

Linux または Mac で kubeconfig ファイルを生成するには、次のコマンドを実行します。

# For generating kubeconfig
# Creates the token for uipathadmin service account
token=$(oc -n <uipath> create token uipathadmin --duration=8760h)
# Getting api-server details
server=$(oc config view -o jsonpath="{.clusters[]..server}")
# Login logs on using the provided token and server and outputs kubeconfig at the provided path.
oc login --server=$server --token=$token --kubeconfig=uipathadminkubeconfig --insecure-skip-tls-verify=true
# For generating kubeconfig
# Creates the token for uipathadmin service account
token=$(oc -n <uipath> create token uipathadmin --duration=8760h)
# Getting api-server details
server=$(oc config view -o jsonpath="{.clusters[]..server}")
# Login logs on using the provided token and server and outputs kubeconfig at the provided path.
oc login --server=$server --token=$token --kubeconfig=uipathadminkubeconfig --insecure-skip-tls-verify=true

操作が成功すると、 という名前の kubeconfig ファイルが表示されます uipathadminkubeconfig。

Windows で kubeconfig ファイルを生成する​

注:

この手順は、Windows PowerShell を使用して実行する必要があります。

Windows で kubeconfig ファイルを生成するには、次のコマンドを実行します。

# For generating kubeconfig
# Creates the token for uipathadmin service account
$token = oc -n <uipath> create token uipathadmin --duration=8760h
# Getting api-server details
$server = oc config view -o jsonpath="{.clusters[]..server}"
# Login logs on using the provided token and server and outputs kubeconfig at the provided path.
oc login --server=$server --token=$token --kubeconfig=uipathadminkubeconfig --insecure-skip-tls-verify=true
# For generating kubeconfig
# Creates the token for uipathadmin service account
$token = oc -n <uipath> create token uipathadmin --duration=8760h
# Getting api-server details
$server = oc config view -o jsonpath="{.clusters[]..server}"
# Login logs on using the provided token and server and outputs kubeconfig at the provided path.
oc login --server=$server --token=$token --kubeconfig=uipathadminkubeconfig --insecure-skip-tls-verify=true

操作が成功すると、 という名前の kubeconfig ファイルが表示されます uipathadminkubeconfig。

手順 5: 制限モード操作の​用にinput.jsonを設定する

no-cluster-roles フローでは、uipathctl と UiPath サービスのグラフでクラスター スコープの読み取りやリソースを必要とする操作を回避できるように、input.jsonにいくつかのキーを追加する必要があります。以下のセクションでは、各キーについて説明します。

5.1 優先度クラス​

ignore_priority_class を [true] に設定します。

{
  "ignore_priority_class": true
}
{
  "ignore_priority_class": true
}

この設定では、次のことを行います。

  • このロールは、独自のpriorityclasses.scheduling.k8s.ioルックアップをスキップするようuipathctlに指示します。スキップしない場合は、クラスター スコープの読み取りが必要になります。
  • この priorityClassName はすべての UiPath サービス グラフに反映され、その後、そのワークロードから が除外されます。

そのため、 PriorityClassを参照する Automation Suite ポッドは存在しないため、 クラスター上に PriorityClass が存在する必要はなく、 事前に作成しておく必要もありません。

5.2 証明書とイングレス​

証明書と入力キーを追加します。証明書関連のキーの詳細については、「 証明書の要件」をご覧ください。

{
  "server_certificate": {
    "tls_cert_file": "<path-to-tls.crt>",
    "tls_key_file":  "<path-to-tls.key>",
    "ca_cert_file":  "<path-to-ca.crt>"
  },

  "ingress": {
    "namespace": "<istio-system>",
    "gateway_selector": { "istio": "ingressgateway" },
    "ingress_gateway_secret": "istio-ingressgateway-certs"
  },

  "additional_ca_certs": "<path-to-ca.crt>"
}
{
  "server_certificate": {
    "tls_cert_file": "<path-to-tls.crt>",
    "tls_key_file":  "<path-to-tls.key>",
    "ca_cert_file":  "<path-to-ca.crt>"
  },

  "ingress": {
    "namespace": "<istio-system>",
    "gateway_selector": { "istio": "ingressgateway" },
    "ingress_gateway_secret": "istio-ingressgateway-certs"
  },

  "additional_ca_certs": "<path-to-ca.crt>"
}

additional_ca_certs キーが必要になるのは、TLS 証明書がプライベート証明機関または自己署名証明機関によって署名されている場合にのみです。CA バンドルをすべての Automation Suite ポッドの信頼ストアに反映します。

5.3 AS ロボットの同時実行制限​

重要:

この手順は、AS ロボット (asrobots) を有効化している場合にのみ必要です。

AS ロボットを有効化する場合は、明示的な concurrency_limitを設定します。

{
  "asrobots": {
    "enabled": true,
    "concurrency_limit": 2
  }
}
{
  "asrobots": {
    "enabled": true,
    "concurrency_limit": 2
  }
}

concurrency_limitが設定されていない場合、[AS ロボット] グラフにClusterRoleとClusterRoleBindingがデプロイされ、ノードの容量を自動的に読み取り、ロボットの同時実行性が計算されます。名前空間の ArgoCD インスタンスは、これらのクラスター スコープのリソースを管理できないため、 asrobots アプリケーションは同期に失敗します。

ComparisonError: cluster level ClusterRoleBinding "<uipath>-asrobots-robot-resources-crb" can not be managed when in namespaced mode
ComparisonError: cluster level ClusterRoleBinding "<uipath>-asrobots-robot-resources-crb" can not be managed when in namespaced mode

明示的に concurrency_limitの場合、グラフではクラスター スコープのリソースはデプロイされません。

5.4 独自のコンポーネントを使用する​

このフローでは uipathadmin にはクラスター スコープの権限がないため、インストーラーはクラスター スコープのリソースを作成するプラットフォーム コンポーネント (Istio、OPA Gatekeeper、cert-manager、ネットワーク ポリシーなど) をデプロイできません。これらのコンポーネントは、インストーラーがスキップするように、自分でプロビジョニングし、 exclude_components リストに含める必要があります。

exclude_componentsで自分で指定したコンポーネントをリストアップし、このフローではテレメトリを有効化できないため、telemetry_optoutを [true] に設定します。コンポーネントのリストと詳細については、「 クラスター ロールなし」をご覧ください。

手順 6: TLS 証明書シークレットを事前に作成する​

uipathadmin は名前空間のみのスコープであるため、クラスター管理者はインストール前に <istio-system> 名前空間にistio-ingressgateway-certs Secretを作成する必要があります。これは uipathadmin に追加の特権を付与するものではありません。これは、クラスター スコープの権限を持ってい uipathadmin 場合に実行されるであろう作業の代わりとなります。(PriorityClassを作成する必要はありません。この依存関係は手順 5.1 のignore_priority_classで削除されます)。

istio-ingressgateway-certs Secretは、サービス メッシュの構成の一部として作成されます。作成するには、「 Istio の設定とルーティング用の WASM プラグインのインストール」を参照してください。

uipathadmin は読み取り専用のistio-system-automationsuite-roleのみを保持しているため、このSecret読み取ることはできますが、作成することはできません。クラスター管理者が作成する必要があります。

TLS 証明書がプライベート証明機関または自己署名証明機関によって署名されている場合、ca.crtキーが必要になるため、Secretに tls.crt、tls.key、ca.crt の 3 つのキーがすべて含まれていることを確認してください。

手順 7: サービス メッシュと GitOps ツールをインストールして構成する​

サービス メッシュと GitOps ツールの標準手順を実行します。これらのプロシージャは、<argocd>名前空間内のuipathadmin用に追加の名前空間スコープの役割とバインディングを作成します。どのモデルでも、uipathadminに対するクラスター スコープの権限は必要ありません。

  • サービスメッシュのインストールと設定 - OpenShift Service Meshをインストールします。uipathadmin は読み取り専用の <istio-system> ロールで実行されるため、Istio を設定したり、WASM プラグイン自体をインストールしたりすることはできません。クラスター管理者は、Automation Suite をインストールする前に istio-configure を設定する必要があります。
  • GitOps ツールをインストールおよび構成 する - 専用の ArgoCD インスタンスをプロビジョニングし、 すべての手順を完了します。

istio-configureセットアップ手順については、「Istio の構成」および「ルーティング用の WASM プラグインのインストール」を参照してください。

このページは役に立ちましたか?

接続

ヘルプ リソース サポート

学習する UiPath アカデミー

質問する UiPath フォーラム

最新情報を取得