Old Installation Guide(until Cappuccino) - cloud-barista/cb-spider GitHub Wiki

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.

[NOTE]
CB-Spider is currently under development. (the latest version is 0.2 cappuccino)
So, we do not recommend using the current release in production.
Please note that the functionalities of CB-Spider are not stable and secure yet.
If you have any difficulties in using CB-Spider, please let us know.
(Open an issue or Join the cloud-barista Slack)

[๋ชฉ ์ฐจ]

  1. ์‹คํ–‰ ํ™˜๊ฒฝ
  2. ์‹คํ–‰ ๋ฐฉ๋ฒ•
  3. API ๊ทœ๊ฒฉ
  4. ํ™œ์šฉ ์˜ˆ์‹œ
  5. ํŠน์ด ์‚ฌํ•ญ
  6. ์†Œ์Šค ํŠธ๋ฆฌ

[์‹คํ–‰ ํ™˜๊ฒฝ]

  • ๋ฆฌ๋ˆ…์Šค (๊ฒ€์ฆ์‹œํ—˜:Ubuntu 18.04, Raspbian GNU/Linux 10, Android aarch64)

[์‹คํ–‰ ๋ฐฉ๋ฒ•]

(1) ์ปจํ…Œ์ด๋„ˆ ๊ธฐ๋ฐ˜ ์‹คํ–‰

# sudo 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.2.0-20200819

(2) ์†Œ์Šค ๊ธฐ๋ฐ˜ ์‹คํ–‰

(a) ์†Œ์Šค ์„ค์น˜

  • Git ์„ค์น˜

  • Go ์„ค์น˜ (1.12 ์ด์ƒ)

  • Cloud-Barista alliance ์„ค์น˜ (CB-Log)

  • Cloud-Barista alliance ์„ค์น˜ (CB-Store)

  • 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

(b) ์‹คํ–‰ ์ค€๋น„

  • CB-Spider ์‹คํ–‰์— ํ•„์š”ํ•œ ํ™˜๊ฒฝ๋ณ€์ˆ˜ ์„ค์ •

    setup.env ์— ํ™˜๊ฒฝ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•œ๋‹ค

    1. ํ•ด๋‹น ํŒŒ์ผ์ด ์œ„์น˜ํ•œ ๊ฒฝ๋กœ๋กœ ์ด๋™

      • cd $GOPATH/src/github.com/cloud-barista/cb-spider
    2. ํ™˜๊ฒฝ๋ณ€์ˆ˜ ์„ค์ •

      • vi setup.env

      • ex)

        export CBSPIDER_ROOT=$GOPATH/src/github.com/cloud-barista/cb-spider
        export CBSTORE_ROOT=$GOPATH/src/github.com/cloud-barista/cb-spider
        export CBLOG_ROOT=$GOPATH/src/github.com/cloud-barista/cb-spider
        export PLUGIN_SW=OFF
        
      • PLUGIN_SW ํ™˜๊ฒฝ๋ณ€์ˆ˜

        • PLUGIN_SW=ON ์œผ๋กœ ์„ค์ •๋œ ๊ฒฝ์šฐ
          • CSP๋ณ„ driver๊ฐ build๋˜๊ณ  plugin ๋ฐฉ์‹์œผ๋กœ (๋™์ ์œผ๋กœ) driver๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค
        • PLUGIN_SW=OFF ๋กœ ์„ค์ •๋œ ๊ฒฝ์šฐ
          • OFF mode๋กœ ์„ค์ •ํ•˜๊ณ  buildํ•˜์—ฌ Android ํ™˜๊ฒฝ ๋“ฑ plugin์„ ์ง€์›ํ•˜์ง€ ์•Š๋Š” ์‹คํ–‰ ํ™˜๊ฒฝ์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค
    3. ํ™˜๊ฒฝ๋ณ€์ˆ˜ ๋ฐ˜์˜

      • $ 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-plugin # AWS Driver ๊ฒฝ์šฐ
      • build_driver_lib.sh ์‹คํ–‰

(c) ์„œ๋ฒ„ ์‹คํ–‰

  • cd cb-spider/api-runtime/

  • ์œ„์˜ ์œ„์น˜์—์„œ ์•„๋ž˜์˜ ๋‘๊ฐ€์ง€ ๋ฐฉ๋ฒ•์œผ๋กœ cb-spider ์„œ๋ฒ„๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Œ. # 1024 ํฌํŠธ๋กœ REST API Server ๊ตฌ๋™๋จ

    • ๋ฐฉ๋ฒ• 1)

      • go run *.go ๋กœ build ๋ฐ ์‹คํ–‰
    • ๋ฐฉ๋ฒ• 2)

      • make ๋กœ build ํ›„ ./cb-spider ๋กœ ์‹คํ–‰
  • ์ฐธ๊ณ : ๋ฉ”ํƒ€ ์ •๋ณด ์†์ƒ์‹œ ์ดˆ๊ธฐํ™” ๋ฐฉ๋ฒ•

    • cb-spider/cloud-driver-libs/.ssh-*/* ํŒŒ์ผ ์‚ญ์ œ
    • cb-spider/meta_db/dat ๊ฒฝ๋กœ ์‚ญ์ œ(ex: 0.dat) ํ›„ ์„œ๋ฒ„ ์žฌ๊ฐ€๋™

(3) Cloud-Barista ํ”Œ๋žซํผ ํ†ตํ•ฉ ์‹คํ–‰ ๋ฐฉ๋ฒ• (Docker-Compose ๊ธฐ๋ฐ˜)

[API ๊ทœ๊ฒฉ]

  • ํด๋ผ์šฐ๋“œ ์ธํ”„๋ผ ์—ฐ๋™ ์ •๋ณด ๊ด€๋ฆฌ: https://cloud-barista.github.io/rest-api/v0.2.0/spider/ccim/
    • ํด๋ผ์šฐ๋“œ ๋“œ๋ผ์ด๋ฒ„ ์ •๋ณด ๊ด€๋ฆฌ
    • ํด๋ผ์šฐ๋“œ ์ธํ”„๋ผ ์ธ์ฆ์ •๋ณด ๊ด€๋ฆฌ
    • ํด๋ผ์šฐ๋“œ ์ธํ”„๋ผ ๋ฆฌ์ ผ ์ •๋ณด ๊ด€๋ฆฌ
  • ํด๋ผ์šฐ๋“œ ์ธํ”„๋ผ ๊ณตํ†ต ์ œ์–ด ๊ด€๋ฆฌ: https://cloud-barista.github.io/rest-api/v0.2.0/spider/cctm/
    • ์ด๋ฏธ์ง€ ์ž์› ์ œ์–ด
    • ๋„คํŠธ์›Œํฌ ์ž์› ์ œ์–ด
    • 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/fulltest ์•„๋ž˜ ์ž์› ๋ณ„ ์‹œํ—˜ ์Šคํฌ๋ฆฝํŠธ ์กด์žฌ
      • (์ž์›๊ด€๋ฆฌ) ์ž์› ์ƒ์„ฑ ์ˆœ์„œ
      • (1) vpc, security group, keypair ์ƒ์„ฑ
      • (2) vm ์ƒ์„ฑ ๋ฐ ์ œ์–ด
      • (3) ์‚ญ์ œ๋Š” ์ž์› ์ƒ์„ฑ ์—ญ์ˆœ
  • CSP๋ณ„ VM User: 2020.05.29.ํ˜„์žฌ

    CSP user ID ๋น„๊ณ 
    AWS ubuntu ๋˜๋Š” ec2-user ๋“ฑ Image ์˜์กด
    Azure cb-user Driver์—์„œ ๊ณ ์ •
    GCP cb-user Driver์—์„œ ๊ณ ์ •
    Alibaba root CSP์—์„œ ๊ณ ์ •, PW ์„ค์ • ๊ฐ€๋Šฅ
    OpenStack ubuntu ๋“ฑ Image์— ์˜์กด
    Cloudit root sshkey ์ œ๊ณต ์•ˆํ•จ. PW ์„ค์ • ๊ฐ€๋Šฅ

[ํŠน์ด ์‚ฌํ•ญ]

  • ๊ฐœ๋ฐœ์ƒํƒœ: ์ดˆ๊ธฐ ์ฃผ์š” ๊ธฐ๋Šฅ ์ค‘์‹ฌ ๊ฐœ๋ฐœ์ถ”์ง„ ์ค‘ / ๊ธฐ์ˆ ๊ฐœ๋ฐœ์šฉ / ์ƒ์šฉํ™œ์šฉ์‹œ ๋ณด์™„ํ•„์š”
  • 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)
|           |-- parallel-test: VM ๋™์‹œ ์‹คํ–‰ ์‹œํ—˜ ์ฐธ์กฐ(VPC์ƒ์„ฑ -> SecurityGroup์ƒ์„ฑ -> KeyPair์ƒ์„ฑ -> N๊ฐœ VM ๋™์‹œ Start)

|-- cloud-control-manager
|   |-- cloud-driver
|   |   |-- drivers: ๋“œ๋ผ์ด๋ฒ„ ๊ตฌํ˜„์ฒด ์œ„์น˜
|   |   |   |-- alibaba
|   |   |   |-- alibaba-plugin
|   |   |   |-- aws
|   |   |   |-- aws-plugin
|   |   |   |-- azure
|   |   |   |-- azure-plugin
|   |   |   |-- cloudit
|   |   |   |-- cloudit-plugin
|   |   |   |-- gcp
|   |   |   |-- gcp-plugin
|   |   |   |-- docker
|   |   |   |-- docker-plugin
|   |   |   |-- openstack
|   |   |   |-- openstack-plugin
|   |   `-- 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์„ค์ •, ๋ฉ”ํƒ€ ์ •๋ณด ๊ด€๋ฆฌ ์„ค์ •, ๋กœ๊ทธ ์„ค์ •)

|-- interface
|   |-- api: Go API ๊ธฐ๋ฐ˜ ์‘์šฉ ๊ฐœ๋ฐœ์„ ์œ„ํ•œ Client Package
|   |-- cli: CLI ๊ธฐ๋ฐ˜ ์šด์šฉ์„ ์œ„ํ•œ Client Package

`-- meta_db: ๋ฉ”ํƒ€ ์ •๋ณด local FS(nutsdb) ํ™œ์šฉ์‹œ ์ €์žฅ์†Œ ์œ„์น˜
    `-- dat
`-- utils
    |-- import-info: Cloud Driver ๋ฐ Region ์ •๋ณด ์ž๋™ ๋“ฑ๋ก ์ง€์› ๋„๊ตฌ
  • CB-Spider ์†Œ์Šค ํŠธ๋ฆฌ ๊ด€๋ จ ์ƒ์„ธ ์„ค๋ช… : https://han.gl/3IOVD