CloudForet 활용(심화)

흑두루미·2026년 6월 12일

앞서 최소사양으로 CloudForet을 구성 및 AWS와 연동
다만, 멀티 클라우드 관리에 대한 확인을 하고 싶어 심화 과정 시작

구성

현재 AWS는 연동되어 있는 상태
SCP를 추가적으로 연동하여 멀티 클라우드 관리 진행

SCP Plugin이 없으므로 아래와 같이 진행하기로 결정

1단계: SCP API로 VM 목록 조회하는 Python 스크립트 성공
2단계: 조회 결과를 CloudForet Inventory CloudService 포맷으로 변환
3단계: SpaceONE Collector Plugin 구조로 패키징
4단계: Docker 이미지 빌드
5단계: CloudForet에 Plugin 등록
6단계: Collector 생성 후 SCP Service Account 연결
7단계: Cloud Service 화면에 SCP VM 표시 확인

1단계

SCP API로 VM 목록 조회하는 Python 스크립트 성공

===============================================================================
🔍 SCP Virtual Server 목록 조회 시작
================================================================================
스크립트 위치: c:\Users\user\Desktop\MZC\Z-mzc\OpenAPI 작업
인증정보 파일: c:\Users\user\Desktop\MZC\Z-mzc\OpenAPI 작업\scp_credentials.json
결과 저장 파일: c:\Users\user\Desktop\MZC\Z-mzc\OpenAPI 작업\scp_vm_list.parsed.json

================================================================================
⚙️ 설정 요약
================================================================================
OpenAPI Endpoint: https://openapi.samsungsdscloud.com
Project ID: PROJECT-
Client Type: OpenApi
Resource Type: PROJECT
Language: en-US
SSL Verify: False
Access Key: sBAM****

📄 페이지 조회 중: page=0, size=100
   HTTP Status Code: 200
   전체 VM 개수: 5
   현재까지 조회된 VM 수: 5

================================================================================
✅ SCP VM 조회 완료: 5개
================================================================================
[1] name=bastion-001, id=INSTANCE-H0n--iGlIgfhed, state=STOPPED, private_ip=192.168, image_id=IMAGE-TYn75EWMtgcTM7qZBaL7-a, service=Virtual Server, created_at=2026-05-28T11:23:17.263794+09:00
[2] name=backup-02-001, id=INSTANCE-TsS62YOMYpJVTyd, state=STOPPED, private_ip=192.168, image_id=IMAGE-k4Vwue-usTcVS9tp0chgGa, service=Virtual Server, created_at=2026-05-28T11:21:47.861308+09:00
[3] name=backup-01-001, id=INSTANCE-_L-p8BkBiZSgZuYCm, state=STOPPED, private_ip=192.168, image_id=IMAGE-TYn75EWMtgcTM7qZBaL7-a, service=Virtual Server, created_at=2026-05-28T11:19:48.349298+09:00
[4] name=vm-pms-test, id=INSTANCE-4rNcjYmNs7dji4Amd, state=RUNNING, private_ip=192.168, image_id=IMAGE-25Z0imVfs2mMGxiBMnKmop, service=Virtual Server, created_at=2026-04-20T14:51:47.746695+09:00
[5] name=test-001, id=INSTANCE-7W1BHSAZtvfH15gj, state=STOPPED, private_ip=192.168, image_id=IMAGE-25Z0imVfs2mMGxiBMnKmop, service=Virtual Server, created_at=2026-03-06T13:45:30.489579+09:00

================================================================================
💾 파일 저장 완료
================================================================================
파일 경로: c:\Users\user\Desktop\MZC\Z-mzc\OpenAPI 작업\scp_vm_list.parsed.json
파일 크기: 5,399 bytes

================================================================================
✅ 작업 완료
================================================================================
PS C:\Users\user\Desktop\MZC\Z-mzc\OpenAPI 작업> 

2단계

SCP Collector Plugin 생성

  • 예상 구조
scp-vm-inven-collector/
├── Dockerfile
├── requirements.txt
├── setup.py
└── src/
    └── spaceone/
        └── inventory/
            └── plugin/
                └── collector/
                    ├── service.py
                    ├── connector/
                    │   └── scp_connector.py
                    └── manager/
                        └── vm_manager.py
  • 현재 구조
src/spaceone/inventory/conf/global_conf.py
src/spaceone/inventory/conf/__init__.py
src/spaceone/inventory/connector/__init__.py
src/spaceone/inventory/connector/__pycache__/__init__.cpython-311.pyc
src/spaceone/inventory/connector/__pycache__/scp_connector.cpython-311.pyc
src/spaceone/inventory/connector/scp_connector.py
src/spaceone/inventory/__init__.py
src/spaceone/inventory/interface/grpc/collector.py
src/spaceone/inventory/interface/grpc/__init__.py
src/spaceone/inventory/interface/grpc/__pycache__/collector.cpython-311.pyc
src/spaceone/inventory/interface/grpc/__pycache__/__init__.cpython-311.pyc
src/spaceone/inventory/interface/__init__.py
src/spaceone/inventory/manager/__init__.py
src/spaceone/inventory/manager/__pycache__/vm_manager.cpython-311.pyc
src/spaceone/inventory/manager/vm_manager.py
src/spaceone/inventory/__pycache__/__init__.cpython-311.pyc
src/spaceone/inventory/service/collector_service.py
src/spaceone/inventory/service/__init__.py
src/spaceone/inventory/service/__pycache__/collector_service.cpython-311.pyc
src/spaceone/inventory/service/__pycache__/__init__.cpython-311.pyc

3단계

spacectl를 이용한 SCP Provider 등록

  • 사전에 SCP Provider에서 사용할 Service Account 생성 필요
Trouble Shooting

콘솔에서 SCP용 Service Account 생성 시
Add 버튼 비활성으로 SA 생성 실패 → spacectl을 이용하여 생성

kubectl exec -i -n spaceone spacectl -- sh -c 'cat > /tmp/scp_service_account.yaml' <<EOF
---
name: oliver_scp
provider: scp
project_id: ${CF_PROJECT_ID}
service_account_type: GENERAL
data:
  access_key: "${SCP_ACCESS_KEY}"
  access_secret_key: "${SCP_SECRET_KEY}"
  project_id: "${SCP_PROJECT_ID}"
  client_type: "OpenApi"
  language: "en-US"
  resource_type: "PROJECT"
  base_endpoint: "https://openapi.samsungsdscloud.com"
  region_code: "scp-commercial"
  ssl_verify: false
tags: {}
EOF

kubectl exec -n spaceone spacectl -- \
  spacectl exec create identity.ServiceAccount -f /tmp/scp_service_account.yaml

콘솔에서 SCP용 Collector 생성 시
Collector 생성 실패 → spacectl을 이용하여 생성

kubectl exec -i -n spaceone spacectl -- sh -c 'cat > /tmp/scp_collector.yaml' <<'EOF'
---
name: SCP VM Collector
provider: scp
plugin_info:
  plugin_id: scp-vm-collector
  version: "0.1.8"
  upgrade_mode: MANUAL
schedule:
  state: DISABLED
secret_filter:
  state: ENABLED
  service_accounts:
    - sa-d88be3973e9a
tags:
  description: SCP VM Collector created by CLI
EOF

kubectl exec -n spaceone spacectl -- \
  spacectl exec create inventory.Collector -f /tmp/scp_collector.yaml

결과

기존에 없던 삼성클라우드플랫폼(SCP) Provider 생성 후
AWS와 SCP의 멀티클라우드 관리 가능 확인

자세한 과정은 다음 게시글에서 핵심 정리

0개의 댓글