cb-spider
CB-Spider is a sub-Framework of the Cloud-Barista Multi-Cloud Project.
The CB-Spider Mission is to connect all the clouds with a single interface.
[목 차]
- 실행 환경
- 실행 방법
- API 규격
- 활용 예시
- 특이 사항
- 소스 트리
[실행 환경]
- 리눅스(검증시험:Ubuntu 18.04, Raspbian GNU/Linux 10)
[실행 방법]
(1) 컨테이너 기반 실행
# docker run -p 1024:1024 \
-v /root/go/src/github.com/cloud-barista/cb-spider/meta_db:/root/go/src/github.com/cloud-barista/cb-spider/meta_db \
--name cb-spider \
cloudbaristaorg/cb-spider:v0.1.v-yyyymmdd
(2) 소스 기반 실행
(a) 소스 설치
(b) 실행 준비
-
CB-Spider 실행에 필요한 환경변수 설정
source setup.env
(위치: ./cb-spider)
-
driver shared library 생성 방법(설치 시스템 당 1회 실행, driver source 변경시 실행)
-
./build_all_driver_lib.sh
실행
-
결과: cb-spider/cloud-driver-libs/xxx-driver-v1.0.so 생성
-
참고: 특정 CSP driver만 build하는 방법
cd cb-spider/cloud-control-manager/cloud-driver/drivers/aws
# AWS Driver 경우
build_driver_lib.sh
실행
(c) 서버 실행
cd cb-spider/api-runtime/rest-runtime
go run *.go
# 1024 포트 REST API Server 실행됨
- 참고: 메타 정보 초기화 방법
- cb-spider/meta_db/dat 아래 파일 삭제(ex: 0.dat) 후 서버 재가동
(3) Cloud-Barista 시스템 통합 실행 참고(Docker-Compose 기반)
# git clone https://github.com/jihoon-seo/cb-deployer.git
# cd cb-deployer
# docker-compose up
[API 규격]
[활용 예시]
- 시험 도구:
cb-spier/api-runtime/rest-runtime/test/[aws|azure|gcp|openstack|cloudit]
(AWS 경우:aws)
- 시험 순서: 연동 정보 추가 => 자원등록 => VM 생성 및 제어 시험
- 시험 방법:
- (연동정보관리) cb-spider/api-runtime/rest-runtime/test/aws/cim-insert-test.sh 참고(Credential 정보 수정 후 실행)
- (자원관리) cb-spider/api-runtime/rest-runtime/test/aws 아래 자원 별 디렉토리 시험 스크립트 존재
- (자원관리) 자원별 create/list/get/delete 관련 shell 스크립트 실행
- (자원관리) 자원 생성 순서
- (1) vnetwork, keypair, publicip 및 securitygroup 생성
- (2) vm 생성 및 제어
- (3) 삭제는 자원 생성 역순
[특이 사항]
- 개발상태: 초기 기능 중심 개발추진 중 / 기술개발용 / 상용활용시 보완필요
- Alibaba: 통합 시험 전 상태
- Key관리: CSP가 제공하지 않는 경우 Key 자체 생성 및 Key 파일 내부 관리
- 관리위치: cb-spider/cloud-driver-libs/.ssh-CSPName/* (임시방법)
- 공유서버에서 운영시 보안 이슈 존재
[소스 트리]
.
. Dockerfile: docker image build용
. setup.env: spider 운영에 필요한 환경변수 설정
. build_all_driver_lib.sh: 드라이버 build 스크립트
|-- api-runtime
| |-- grpc-runtime: 향후 grpc runtime 들어올 자리
| `-- rest-runtime: 현재 REST runtime
| `-- test: REST API 활용 참조
| |-- alibaba-shooter: 연결설정 생성만 참조(driver등록 -> credential 등록 -> region 등록 -> connection config 등록)
| |-- aws-shooter-name: 연결설정 생성만 참조(driver등록 -> credential 등록 -> region 등록 -> connection config 등록)
| |-- cloudit-shooter: 연결설정 생성만 참조(driver등록 -> credential 등록 -> region 등록 -> connection config 등록)
| |-- cloudtwin-shooter: 연결설정 생성만 참조(driver등록 -> credential 등록 -> region 등록 -> connection config 등록)
| |-- gcp-shooter: 연결설정 생성만 참조(driver등록 -> credential 등록 -> region 등록 -> connection config 등록)
| |-- openstack-shooter-name: 연결설정 생성만 참조(driver등록 -> credential 등록 -> region 등록 -> connection config 등록)
| |-- each-test: 자원별 기능 시험 참조(VPC->SecurityGroup->KeyPair->VM)
| |-- full-test: 모든 자원 전체 기능 시험 참조(create -> list -> get -> delete)
|-- cloud-control-manager
| |-- cloud-driver
| | |-- drivers: 드라이버 구현체 위치
| | | |-- alibaba
| | | |-- aws
| | | |-- azure
| | | |-- cloudit
| | | |-- cloudtwin
| | | |-- gcp
| | | |-- openstack
| | `-- interfaces: 멀티 클라우드 연동 인터페이스(드라어비 공통 인터페이스)
| | |-- connect
| | |-- resources
| |-- iid-manager: Integrated ID 관리, IID 구조:{User-defined ID, System-defined ID}
|-- cloud-driver-libs: 드라이버 공유 라이브러리, SSH Key 생성 파일 관리 위치
|-- cloud-info-manager
| |-- driver-info-manager: 드라이버 정보 관리
| |-- credential-info-manager: 크리덴셜 정보 관리
| |-- region-info-manager: 리젼 정보 관리
| |-- connection-config-info-manager:
|-- conf: Spider 운영을 위한 설정 정보(spider설정, 메타 정보 관리 설정, 로그 설정)
`-- meta_db: 메타 정보 local FS(nutsdb) 활용시 저장소 위치
`-- dat