部署代理程序
在选定的 IBM Cloud® Schematics 区域创建代理注册,以便直接在私有网络或隔离网络区域的云基础设施中工作。
遵循创建和部署代理程序的步骤。
- 创建代理程序定义 以管理代理程序部署。 此步骤使用用于将代理程序部署到其目标位置的代理程序配置来初始化 Schematics。
- 使用
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 ID
,cluster resource group
和region
。 -
Object Storage 存储区的
IBM Cloud® Object Storage instance name
和IBM Cloud Object Storage bucket name
用于代理程序临时数据存储。 IBM Cloud Object Storage和存储桶的资源组和区域必须与集群相同。 -
可选 - 如果需要将代理服务器更新为代理微服务,请参阅 将 Schematics 代理配置为代理服务器。
-
可选-如果您正在使用专用 Git 实例,那么需要通过证书与代理程序建立连接。 有关更多信息,请参阅 将代理程序与专用 Git 实例关联的步骤。
您需要看到
Cluster
和IBM Cloud Object Storage instance
位于同一个资源组中。
创建代理程序定义
- 登录 IBM Cloud控制台。
- 单击菜单图标
>平台自动化>Schematics>扩展>创建代理。
- 在 定义代理程序详细信息 部分中:
- 输入唯一的代理商名称。
- 从下拉选项中选择位置和资源组。
- 输入代理程序的 标记和 描述。
- 在 分配给集群 部分中:
- 选择
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 ID
作为 agent create
命令返回的输入。 代理验证命令的输出会显示相关 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 面板来查看代理相关微服务的状态和日志、pod、部署、配置地图和集群绑定的名称空间,schematics-agent-observe
、schematics-sandbox
、schematics-runtime
和 schematics-job-runtime
。
通过应用程序接口创建代理
遵循 步骤 以创建 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"
}
}
验证是否已成功创建代理程序定义,如输出中所示。 记录要在后续命令中使用的代理程序标识。 例如,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,请在Terraform配置文件中定义 ibm_schematics_agent_deploy
资源。 请完成以下步骤,创建 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,了解该资源特有的更多参数。
后续步骤
代理程序的部署和配置已完成。
- 如果使用的是私有 Git 实例,则通过证书与代理建立连接。 有关更多信息,请参阅 用于关联代理程序以进行连接的步骤。
- 有关通过使用配置和供应基础架构,请参阅 代理策略。 代理程序策略由 Schematics 用于将 Git 存储库下载作业,工作空间或 Terraform 作业以及操作或 Ansible 作业动态路由到代理程序。
- 管理 代理程序和 Kubernetes 集群。
- 您可以查看 代理程序常见问题,以了解与代理程序相关的任何常见问题。
- 当不再需要代理程序时,可以遵循 删除代理程序 中的步骤将其除去。