에이전트 배치
선택한 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 인스턴스와 버킷의 리소스 그룹 및 리전은 클러스터와 동일해야 합니다. -
선택 사항 - 프록시 서버를 에이전트 마이크로서비스로 업데이트해야 하는 경우 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 지역 명령 를 설정하십시오. 지역은 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-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 에이전트 배포를 생성하려면 Terraform 구성 파일에 ibm_schematics_agent_deploy 리소스를 정의합니다. Schematics 에이전트를 생성하려면 다음 단계를 따르십시오. 선택 사항으로 관련 인프라 코드 및 사용 예제를 보려면 terraform-ibm-schematics-agent 모듈을 참조할 수 있습니다.
-
Terraform 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 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" } -
초기화
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 에서 에이전트와 관련된 일반적인 질문을 확인할 수 있습니다.
- 에이전트가 더 이상 필요하지 않으면 에이전트 삭제 의 단계에 따라 에이전트를 제거할 수 있습니다.