IBM Cloud Docs
エージェントのデプロイ

エージェントのデプロイ

選択したIBM Cloud® Schematicsリージョンにエージェント登録を作成し、プライベートネットワークまたは隔離されたネットワークゾーン上のクラウドインフラストラクチャで直接動作するようにします。

エージェントを作成してデプロイするには、以下の手順を実行します。

  1. エージェント・デプロイメントを管理するための エージェント定義を作成 します。 このステップでは、エージェントをそのターゲット・ロケーションにデプロイするために使用されるエージェント構成で Schematics を初期化します。
  2. ibmcloud schematics agent validate および ibmcloud schematics agent deploy CLI コマンドまたは対応する API を使用して、 エージェントをデプロイ します。

開始前に

エージェント・デプロイメントの準備 で説明されているステップを確認して実行します。 クラスターの作成後、 IBM Cloud Object Storage インスタンス、および IBM Cloud Object Storage バケットは、エージェントをそのターゲット・ロケーションにデプロイするための入力として以下の情報を収集します。

  • クラスター、 IBM Cloud Object Storage インスタンス、および IBM Cloud Object Storage バケットが同じリソース・グループに作成されます。

  • エージェントがデプロイする Kubernetes Service クラスターの cluster IDcluster resource group、および region を記録します。

  • Object Storage バケットの IBM Cloud® Object Storage instance nameIBM Cloud Object Storage bucket name は、エージェントの一時データ・ストレージに使用されます。 IBM Cloud Object Storage インスタンスとバケットのリソースグループとリージョンは、クラスタと同じでなければなりません。

  • オプション - プロキシサーバをAgentマイクロサービスに更新する必要がある場合は、プロキシサーバーへのSchematicsエージェントの設定 を参照してください。

  • オプション-プライベート Git インスタンスを使用している場合は、証明書を使用してエージェントとの接続を確立する必要があります。 詳しくは、 エージェントをプライベート Git インスタンスに関連付ける手順 を参照してください。

    ClusterIBM Cloud Object Storage instance が同じリソース・グループ内にあることを確認する必要があります。

エージェント定義の作成

  1. IBM Cloudコンソールにログインします。
  2. メニューアイコンハンバーガーアイコン>Platform Automation>Schematics>Extensions>Create Agentをクリックします。
    • 「エージェント詳細の定義」 セクションで、以下のようにします。
      • ユニークなエージェント名を入力します。
      • ドロップダウンリストから場所リソースグループを選択します。
      • エージェントの 「タグ」「説明」 を入力します。
    • 「クラスターへの割り当て」 セクションで、以下のようにします。
      • IBM Cloud Kubernetes Service または Red Hat OpenShift サービスを選択します。
      • クラスター名を選択します。
      • 「COS インスタンスの定義」 で、以下のようにします。
        • COSインスタンス名を入力
        • COSバケット名を入力
        • COS バケット・リージョン を入力します。
  3. 定義」をクリックする。
  4. 「検証」 をクリックして、クラスターおよび IBM Cloud Object Storage 構成を検証します。
  5. 「デプロイ」 をクリックして、エージェントをデプロイします。

CLIによるエージェント定義の作成

最初のステップとして、IBM Cloudアカウントに、エージェントのデプロイに使用されるコンフィギュレーションでエージェント定義を作成する必要があります。 agent create オプションの完全なリストについては、 ibmcloud schematics agent create コマンドを参照してください。

エージェントを定義・管理するIBM Cloud リージョンを選択します。 ibmcloud target -r <region> を実行して、 CLI リージョン・コマンド を設定します。 このリージョンは、agent create コマンドで指定された location と同じリージョンでなければなりません。 IBM Cloud Object Storage バケットの場所は、市区町村名ではなく、 eu-gb または us-south の形式でなければなりません。

agent create 構文の例。 < > の間のテキストには、以下の値を追加する必要があります。

ibmcloud schematics agent create --name <agent-ga-prod-cli-jan-10> --location <us-south> --agent-location <us-south> --version <1.0.0> --infra-type <ibm_kubernetes> --cluster-id <cg3fgvad0dak571xxx> --cluster-resource-group <Default> --cos-instance-name <agent-cos-instance> --cos-bucket <agent-cos-bucket> --cos-location <us-east> --resource-group <Default>

出力

Creating agent...
OK

ID               agent-ga-prod-cli-jan-10.soA.cd1c
Name             agent-ga-prod-cli-jan-10
Status           Defined
Version          1.0.0
Location         us-south
Agent Location   us-south
Resource Group   aac37f57b20142dba1a435c70aeb12df
Metadata         [Metadata]
                 - [git]
                 - [github.com]

後続のコマンドで使用するために、 Agent ID を記録します。 エージェントの詳細を表示するには、エージェントの get コマンドを使用します。

ibmcloud schematics agent get --id agent-ga-prod-cli-jan-10.soA.cd1c

出力

Retrieving agent...
OK

ID               agent-ga-prod-cli-jan-10.soA.cd1c
Name             agent-ga-prod-cli-jan-10
Status           ACTIVE
Version          1.0.0
Location         us-south
Agent Location   us-south
Resource Group   Default
Metadata         [Metadata]
                 - [git]
                 - [github.com]

CLIによるエージェント展開の前提条件の確認

エージェントの検証コマンドを使用して、エージェント定義とクラスターの可用性を検証できます。 バリデートは、ターゲットエージェントのインフラストラクチャの前提条件チェックを行う。 このコマンドは、 agent create コマンドによって返される入力として Agent ID を受け取ります。 agent validatesコマンドの出力には、関連するKubernetesとエージェントのプロパティ名のリスト、期待値、実際の値、PASS または FAIL としての結果が表示されます。

ibmcloud schematics agent validate --id agent-ga-prod-cli-jan-10.soA.cd1c

出力

Initiating agent validate...
Job ID	.ACTIVITY.600cadf9

Polling status...
Status	job_pending
Status	job_in_progress
Status	job_in_progress
Status	job_in_progress
Status	job_finished

ibmcloud schematics agent get --id agent-ga-prod-cli-jan-10.soA.cd1c

出力

Retrieving agent...
OK

ID               agent-ga-prod-cli-jan-10.soA.cd1c
Name             agent-ga-prod-cli-jan-10
Status           ACTIVE
Version
Location         us-south
Agent Location   us-south
Resource Group   Default

Recent Job   Job ID                             Status                  Last modified
DEPLOY       -                                  Deploy in progress      2024-01-10T09:54:32.607Z
VALIDATE     8b168c1e0e4b35708e95c2af9a99d9d4   Successful validation   2024-01-10T09:53:48.435Z

CLIによるエージェントの展開

agent deploy コマンドを使用してエージェントをデプロイするには、エージェント定義を使用します。 agent deploy コマンドは、 Agent ID を入力として使用します。 既存の配置をアップグレードするには、force deploy オプションを使用します。

エージェントのデプロイメントが完了するまでに数分かかります。

ibmcloud schematics agent deploy --id agent-ga-prod-cli-jan-10.soA.cd1c

出力

Initiating agent deploy...
Job ID	.ACTIVITY.465e9716

ibmcloud schematics agent get --id agent-ga-prod-cli-jan-10.soA.cd1c

出力

Retrieving agent...
OK

ID               agent-ga-prod-cli-jan-10.soA.cd1c
Name             agent-ga-prod-cli-jan-10
Status           ACTIVE
Version          1.0.0
Location         us-south
Agent Location   us-south
Resource Group   Default

Recent Job   Job ID               Status                 Last modified
DEPLOY       .ACTIVITY.465e9716   Triggered deployment   2024-01-10T10:20:48.435Z
VALIDATE     8b168c1e0e4b35708e   Successful validation   2024-01-10T09:53:48.435Z

CLIによるエージェント配備の検証

agent health コマンドを使用して、最近デプロイされたエージェントの正常性を確認できます。 このコマンドは、 Agent ID を入力として使用します。 出力には、関連する Kubernetes のリストが、エージェントの正常性プロパティー名、予期される値、実際の値、および結果 ( PASS または FAIL) とともに表示されます。

ibmcloud schematics agent health --id agent-ga-prod-cli-jan-10.soA.cd1c

出力

Initiating agent health...
Job ID	.ACTIVITY.f6f77588

ibmcloud schematics agent get --id agent-ga-prod-cli-jan-10.soA.cd1c

出力

Retrieving agent...
OK

ID               agent-ga-prod-cli-jan-10.soA.cd1c
Name             agent-ga-prod-cli-jan-10
Status           ACTIVE
Version
Location         us-south
Agent Location   us-south
Resource Group   Default

Recent Job   Job ID                             Status                   Last modified
DEPLOY       f5c6987ce53032547b6d5d5f870dfe5f   Job Success               0001-01-01T00:00:00.000Z
HEALTH       .ACTIVITY.f6f77588                 Triggered health check   2023-03-27T12:31:15.326Z

さらに、クラスタの Kubernetes CLI (kubectl) または Kubernetes ダッシュボードを使用して、エージェントに関連するマイクロサービスのステータスとログを表示できます、ネームスペース、schematics-agent-observe, schematics-sandbox, schematics-runtime, schematics-job-runtime のポッド、デプロイメント、コンフィグマップ、クラスタバインディングのステータスとログを見ることができます。

APIによるエージェントの作成

手順 に従って、IAM アクセス・トークンを作成し、API を介して Schematics で認証します。 詳しくは、API を使用した エージェントの作成 を参照してください。

  POST /v2/agents HTTP/1.1
  Host: schematics.cloud.ibm.com
  Content-Type: application/json
  Authorization: Bearer

  {
    "name": "agentb1-gsmforvpc",
    "description": "Create Agent",
    "resource_group": "Default",
    "tags": [
        "env:prod",
        "mytest"
    ],
    "version": "v1.0.0",
    "schematics_location": "eu-de",
    "agent_location": "Frankfurt MZR",
    "agent_infrastructure": {
        "infra_type": "ibm_kubernetes",
        "cluster_id": "cg3fgvad0dak571op4g0",
        "cluster_resource_group": "Default",
        "cos_instance_name": "agent-cos-instance",
        "cos_bucket_name": "agent-cos-bucket"
    },
    "user_state": {
        "state": "enable"
    }
}

出力に示されているように、エージェント定義が正常に作成されたことを確認します。 後続のコマンドで使用するために、エージェント ID を記録します。 例えば、agentb1-gsmforvpc.soA.115c です。

出力

  {
      "name": "agentb1-gsmforvpc",
      "description": "Create Agent",
      "resource_group": "aac37f57b20142dba1a435c70aeb12df",
      "tags": [
          "env:prod",
          "mytest"
      ],
      "version": "v1.0.0",
      "schematics_location": "eu-de",
      "agent_location": "Frankfurt MZR",
      "user_state": {
          "state": "enable",
          "set_by": "xxxx@in.ibm.com",
          "set_at": "2023-03-16T18:08:18.399224788Z"
      },
      "agent_crn": "crn:v1:bluemix:public:schematics:eu-de:a/1f7277194bb748cdxxxxxxxxxxx42-0d59-415c-a6ce-0b662f520a4d:agent:agentb1-gsmforvpc.soA.115c",
      "id": "agentb1-gsmforvpc.soA.115c",
      "created_at": "2023-03-16T18:08:18.39924616Z",
      "creation_by": "xxxxx@in.ibm.com",
      "updated_at": "0001-01-01T00:00:00Z",
      "system_state": {
          "status_code": "draft"
      },
      "agent_kpi": {}
  }

ここで、 agent ID を指定して agent deploy API を実行し、エージェントをデプロイする Schematics ワークスペースを作成します。 agent deploy 操作は、 agent validate 操作と agent deploy 操作の両方を開始してエージェントをセットアップします。

構文

  PUT /v2/agents/<enter your agentID>/deploy HTTP/1.1
  Host: schematics.cloud.ibm.com
  Content-Type: application/json
  Authorization: Bearer

  PUT /v2/agents/agentb1-gsmforvpc.soA.115c/deploy HTTP/1.1
  Host: schematics.cloud.ibm.com
  Content-Type: application/json
  Authorization: Bearer

出力

{
    "workspace_id": "eu-de.workspace.agentb1-gsmforvpc-deploy.1xxxxdf",
    "job_id": ".ACTIVITY.7f40fdc0",
    "updated_at": "2023-03-16T18:13:27.217864196Z",
    "updated_by": "xxxx@in.ibm.com",
    "status_code": "PENDING",
    "status_message": "Triggered deployment"
}

Terraform を使用してエージェントを作成する

Terraformを使用して Schematicsを作成するには、 ibm_schematics_agent_deploy リソースをTerraform構成ファイルで定義します。 Schematics エージェントを作成するには、以下の手順を実行します。

  1. Terrafrom CLI をインストールします。

  2. IBM Cloud Provider Plug-in for Terraformを設定します

  3. 設定をテストします

  4. main.tf ファイルで ibm_schematics_agent リソースを定義します。

    resource "ibm_schematics_agent" "schematics_agent_instance" {
    agent_infrastructure {
            infra_type = "ibm_kubernetes"
            cluster_id = "cluster_id"
            cluster_resource_group = "cluster_resource_group"
            cos_instance_name = "cos_instance_name"
            cos_bucket_name = "cos_bucket_name"
            cos_bucket_region = "cos_bucket_region"
    }
    agent_location = "us-south"
    agent_metadata {
            name = "purpose"
            value = ["git", "terraform", "ansible"]
    }
    description = "Create Agent"
    name = "MyDevAgent"
    resource_group = "Default"
    schematics_location = "us-south"
    tags = ["agent-MyDevAgent"]
    version = "1.0.0"
    }
    
  5. 初期化

    terraform init
    
  6. 適用

    terraform apply
    
  7. エージェントをデプロイするには、ibm_schematics_agent_deployリソースを使用します。

    resource "ibm_schematics_agent_deploy" "schematics_agent_deploy_instance" {
    agent_id = "agent_id"
    }
    

リソース固有のパラメータについては IBM Cloud Provider Plug-in for Terraformを参照してください。

ca-mon のエージェント展開が完了すると、最初はエラーステータスが表示されます。 この問題を解決するには、 schematics-runtime ネームスペースの kube-vpeg-<cluster_IDxxxx> セキュリティグループをターゲットにして、 Schematics private リージョン用の 仮想プライベートエンドポイントゲートウェイ(VPE ゲートウェイ)を作成する 必要があります。 この作業には5分ほどかかる。 完了すると、エージェントの配置ステータスが完了に変わります。

次のステップ

エージェントのデプロイと構成が完了しました。

  • プライベートなGitインスタンスを使用している場合は、証明書を使ってエージェントとの接続を確立します。 詳しくは、 エージェントを接続に関連付ける手順 を参照してください。
  • インフラストラクチャの構成とプロビジョニングについては、エージェントポリシー を参照してください。 エージェント・ポリシーは、 Schematics によって使用され、 Git リポジトリーのダウンロード・ジョブ、ワークスペース・ジョブまたは Terraform ジョブ、およびアクション・ジョブまたは Ansible ジョブをエージェントに動的にルーティングします。
  • エージェントと Kubernetes クラスター を管理します。
  • エージェントに関連する一般的な質問については、 エージェントの FAQ を確認してください。
  • 不要になったエージェントは、 エージェントの削除 の手順に従って削除することができます。