에이전트 배치

선택한 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 ID, cluster resource groupregion 를 기록하십시오.

  • Object Storage 버킷의 IBM Cloud® Object Storage instance name, IBM 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 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 지역 명령 를 설정하십시오. 지역은 location 명령에 지정된 agent create 와 동일한 지역이어야 합니다. 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 를 기록하십시오. 에이전트 세부사항을 표시하기 위해 에이전트 가져오기 명령을 사용할 수 있습니다.

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 를 사용합니다. 상담원 유효성 검사 명령의 출력에는 관련 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 를 입력으로 사용합니다. 출력은 에이전트 상태 특성 이름, 예상 값, 실제 값 및 결과가 PASS 또는 FAIL 인 관련 Kubernetes 의 목록을 표시합니다.

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-runtimeschematics-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 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 에이전트를 생성하려면 다음 단계를 따르십시오. 선택 사항으로 관련 인프라 코드 및 사용 예제를 보려면 terraform-ibm-schematics-agent 모듈을 참조할 수 있습니다.

  1. Terraform 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"
    }
    

    또는 그림과 같이 도식 에이전트용 Terraform IBM 모듈을 사용하세요:

    module "schematics_agent" {
        source                      = "terraform-ibm-modules/schematics-agent/ibm"
        version                     = "1.4.0"
        infra_type                  = "ibm_openshift"
        cluster_id                  = "cluster-id"
        cluster_resource_group_name = "Default"
        cos_instance_name           = "cos-instance-name"
        cos_bucket_name             = "cos-bucket-name"
        cos_bucket_region           = "cos-bucket-region"
        agent_location              = "us-south"
        agent_description           = "schematics agent description"
        agent_name                  = "k8s-schematics-agent"
        agent_resource_group_name   = "Default"
        schematics_location         = "us-south"
        agent_version               = "1.5.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 에서 에이전트와 관련된 일반적인 질문을 확인할 수 있습니다.
  • 에이전트가 더 이상 필요하지 않으면 에이전트 삭제 의 단계에 따라 에이전트를 제거할 수 있습니다.