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.
- 리눅스(검증시험:Ubuntu 18.04, Raspbian GNU/Linux 10)
- CB-Spider 이미지 확인(https://hub.docker.com/r/cloudbaristaorg/cb-spider/tags)
- CB-Spider 컨테이너 실행
# 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
-
Git 설치
-
Go 설치(1.12 이상)
-
Cloud-Barista alliance 설치 (CB-Log)
go get -u -v github.com/cloud-barista/cb-log
- https://github.com/cloud-barista/cb-log README를 참고하여 설치 및 설정
-
Cloud-Barista alliance 설치 (CB-Store)
go get -u -v github.com/cloud-barista/cb-store
- https://github.com/cloud-barista/cb-store README를 참고하여 설치 및 설정
-
CB-Spider 설치
go get -u -v github.com/cloud-barista/cb-spider
-
설치 오류시 참고
-
오류 메시지: "panic: /debug/requests is already registered. You may have two independent copies of golang.org/x/net/trace in your binary, trying to maintain separate state. This may involve a vendored copy of golang.org/x/net/trace.”
- 해결방법: $ rm -rf $GOPATH/src/go.etcd.io/etcd/vendor/golang.org/x/net/trace
-
오류 메시지: "gosrc/src/go.etcd.io/etcd/vendor/google.golang.org/grpc/clientconn.go:49:2: use of internal package google.golang.org/grpc/internal/resolver/dns not allowed"
- 해결방법: $ rm -rf $GOPATH/gosrc/src/go.etcd.io/etcd/vendor/google.golang.org/grpc
-
-
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
실행
cd cb-spider/api-runtime/rest-runtime
go run *.go
# 1024 포트 REST API Server 실행됨- 참고: 메타 정보 초기화 방법
- cb-spider/meta_db/dat 아래 파일 삭제(ex: 0.dat) 후 서버 재가동
# git clone https://github.com/jihoon-seo/cb-deployer.git
# cd cb-deployer
# docker-compose up
- 클라우드 인프라 연동 정보 관리: https://documenter.getpostman.com/view/9027676/SVzz4fb4?version=latest
- 클라우드 드라이버 정보 관리
- 클라우드 인프라 인증정보 관리
- 클라우드 인프라 리젼 정보 관리
- 클라우드 인프라 공통 제어 관리: https://documenter.getpostman.com/view/9027676/SVtSXpzE (update 필요)
- 이미지 자원 제어
- 네트워크 자원 제어
- Security Group 자원 제어
- 키페어 자원 제어
- VM 제어 및 정보 제공
- 시험 도구:
cb-spier/api-runtime/rest-runtime/test/[fulltest|eachtest|parallel-test]
(AWS 경우:aws) - 시험 순서: 연동 정보 추가 => 자원등록 => VM 생성 및 제어 시험
- 시험 방법:
- (연동정보관리) cb-spider/api-runtime/rest-runtime/test/connect-config 참고(Credential 정보 수정 후 실행)
- (자원관리) cb-spider/api-runtime/rest-runtime/test/fuletest 아래 자원 별 시험 스크립트 존재
- (자원관리) 자원 생성 순서
- (1) vpc, security group, keypair 생성
- (2) vm 생성 및 제어
- (3) 삭제는 자원 생성 역순
- 개발상태: 초기 기능 중심 개발추진 중 / 기술개발용 / 상용활용시 보완필요
- 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 활용 참조
| |-- connect-config: 연결 설정 참조(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
| | | |-- docker
| | | |-- 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