IBM Cloud Docs
部署代理程序

部署代理程序

在选定的 IBM Cloud® Schematics 区域创建代理注册,以便直接在私有网络或隔离网络区域的云基础设施中工作。

遵循创建和部署代理程序的步骤。

  1. 创建代理程序定义 以管理代理程序部署。 此步骤使用用于将代理程序部署到其目标位置的代理程序配置来初始化 Schematics。
  2. 使用 ibmcloud schematics agent validateibmcloud 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 groupregion

  • Object Storage 存储区的 IBM Cloud® Object Storage instance nameIBM Cloud Object Storage bucket name 用于代理程序临时数据存储。 IBM Cloud Object Storage和存储桶的资源组和区域必须与集群相同。

  • 可选 - 如果需要将代理服务器更新为代理微服务,请参阅 将 Schematics 代理配置为代理服务器

  • 可选-如果您正在使用专用 Git 实例,那么需要通过证书与代理程序建立连接。 有关更多信息,请参阅 将代理程序与专用 Git 实例关联的步骤

    您需要看到 ClusterIBM Cloud Object Storage instance 位于同一个资源组中。

创建代理程序定义

  1. 登录 IBM Cloud控制台
  2. 单击菜单图标汉堡包图标>平台自动化>Schematics>扩展>创建代理
    • 定义代理程序详细信息 部分中:
      • 输入唯一的代理商名称
      • 从下拉选项中选择位置资源组
      • 输入代理程序的 标记描述
    • 分配给集群 部分中:
      • 选择 IBM Cloud Kubernetes ServiceRed 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-gbus-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 和代理属性名称的列表、预期值、实际值以及 PASSFAIL 的结果。

示例

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 的列表,其中包含代理程序运行状况属性名称,期望值,实际值以及结果 PASSFAIL

示例

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-observeschematics-sandboxschematics-runtimeschematics-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 validateagent 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。

  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,了解该资源特有的更多参数。

后续步骤

代理程序的部署和配置已完成。