エージェントのデプロイ
選択したIBM Cloud® Schematicsリージョンにエージェント登録を作成し、プライベートネットワークまたは隔離されたネットワークゾーン上のクラウドインフラストラクチャで直接動作するようにします。
エージェントを作成してデプロイするには、以下の手順を実行します。
- エージェント・デプロイメントを管理するための エージェント定義を作成 します。 このステップでは、エージェントをそのターゲット・ロケーションにデプロイするために使用されるエージェント構成で Schematics を初期化します。
ibmcloud schematics agent validateおよびibmcloud schematics agent deployCLI コマンドまたは対応する API を使用して、 エージェントをデプロイ します。
開始前に
エージェント・デプロイメントの準備 で説明されているステップを確認して実行します。 クラスターの作成後、 IBM Cloud Object Storage インスタンス、および IBM Cloud Object Storage バケットは、エージェントをそのターゲット・ロケーションにデプロイするための入力として以下の情報を収集します。
-
クラスター、 IBM Cloud Object Storage インスタンス、および IBM Cloud Object Storage バケットが同じリソース・グループに作成されます。
-
エージェントがデプロイする Kubernetes Service クラスターの
cluster ID、cluster resource group、およびregionを記録します。 -
Object Storage バケットの
IBM Cloud® Object Storage instance name、IBM Cloud Object Storage bucket nameは、エージェントの一時データ・ストレージに使用されます。 IBM Cloud Object Storage インスタンスとバケットのリソースグループとリージョンは、クラスタと同じでなければなりません。 -
オプション - プロキシサーバをAgentマイクロサービスに更新する必要がある場合は、プロキシサーバーへのSchematicsエージェントの設定 を参照してください。
-
オプション-プライベート Git インスタンスを使用している場合は、証明書を使用してエージェントとの接続を確立する必要があります。 詳しくは、 エージェントをプライベート Git インスタンスに関連付ける手順 を参照してください。
ClusterとIBM Cloud Object Storage instanceが同じリソース・グループ内にあることを確認する必要があります。
エージェント定義の作成
- IBM Cloudコンソールにログインします。
- メニューアイコンの
>Platform Automation>Schematics>Extensions>Create Agentをクリックします。
- 「エージェント詳細の定義」 セクションで、以下のようにします。
- ユニークなエージェント名を入力します。
- ドロップダウンリストから場所とリソースグループを選択します。
- エージェントの 「タグ」 と 「説明」 を入力します。
- 「クラスターへの割り当て」 セクションで、以下のようにします。
IBM Cloud Kubernetes ServiceまたはRed Hat OpenShiftサービスを選択します。- クラスター名を選択します。
- 「COS インスタンスの定義」 で、以下のようにします。
- COSインスタンス名を入力
- COSバケット名を入力
- COS バケット・リージョン を入力します。
- 「エージェント詳細の定義」 セクションで、以下のようにします。
- 定義」をクリックする。
- 「検証」 をクリックして、クラスターおよび IBM Cloud Object Storage 構成を検証します。
- 「デプロイ」 をクリックして、エージェントをデプロイします。
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 エージェントを作成するには、以下の手順を実行します。
-
Terrafrom CLI をインストールします。
-
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" } -
初期化
terraform init -
適用
terraform apply -
エージェントをデプロイするには、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 を確認してください。
- 不要になったエージェントは、 エージェントの削除 の手順に従って削除することができます。