BOSH CLI

Table Contents

문서 개요

문서 목적

본 문서는 BOSH에 대한 설치 및 운영 관리를 위한 도구인 BOSH CLI v2에 대해 기본 사용법 및 사용 예시를 통해 BOSH를 이해하는데 목적이 있다.

문서 범위

본 문서에서는 BOSH CLI V2 사용법에 대해서 작성하였다.

참고 자료

본 문서는 Cloud Foundry의 BOSH Document(http://bosh.io)를 참고로 작성하였다.

BOSH CLI 기본 사용법

CLI는 BOSH 배포와 Release를 관리하기 위해 도움을 주는 커맨드 라인 명령어로 아래와 같이 구분된다.

  • bosh-cli: BOSH를 관리하기 위한 CLI

  • 기본 Syntax

      $ bosh [<options>] <command> [<args>]

    bosh 명령어에 대괄호로 묶인 인자인 과 는 명령어에 따라 선택적으로 사용되고, 인자는 필수 인자이다.

  • Options

BOSH CLI - Environments

bosh environments

  • 기본 Syntax

      $ bosh environments (Alias: envs)
  • 설명

      BOSH CLI에 등록 한 디렉터의 별명이 지정된 환경을 나열
  • 파라미터

  • 사용 예시

      $ bosh envs
      URL              Alias
      104.154.171.255  gcp
      192.168.56.6     vbox
      2 environments
      Succeeded

bosh create-env

  • 기본 Syntax

      $ bosh create-env [deploymentFile] [--state path] [-v ...] [-o ...] [--vars-store path]
  • 설명

    BOSH CLI를 통해 Manifest File을 기반으로 단일 VM을 생성. 일반적으로 Director 환경을 만드는 데 사용

  • 파라미터

  • 사용 예시

      $ bosh create-env ~/workspace/bosh-deployment/bosh.yml \
        --state state.json \
      --vars-store ./creds.yml \
        -o ~/workspace/bosh-deployment/virtualbox/cpi.yml \
        -o ~/workspace/bosh-deployment/virtualbox/outbound-network.yml \
        -o ~/workspace/bosh-deployment/bosh-lite.yml \
        -o ~/workspace/bosh-deployment/jumpbox-user.yml \
        -v director_name=vbox \
        -v internal_ip=192.168.56.6 \
        -v internal_gw=192.168.56.1 \
        -v internal_cidr=192.168.56.0/24 \
        -v network_name=vboxnet0 \
        -v outbound_network_name=NatNetwork

bosh alias-env

  • 기본 Syntax

      $ bosh alias-env [name] -e [location] [--ca-cert=path]
  • 설명

    BOSH CLI를 통해 엑세스 할 디렉터의 별명이 지정

  • 파라미터

bosh environment

  • 기본 Syntax

      $ bosh -e [my-env] environment (Alias: env)
  • 설명

    해당 Director 정보를 출력

  • 파라미터

  • 사용 예시

      $ bosh -e vbox env
      Using environment '192.168.56.6' as '?'
    
      Name      vbox
      UUID      eeb27cc6-467e-4c1d-a8f9-f1a8de759f52
      Version   260.5.0 (00000000)
      CPI       warden_cpi
      Features  compiled_package_cache: disabled
        dns: disabled
        snapshots: disabled
      User      admin
    
      Succeeded

bosh delete-env

  • 기본 Syntax

      $ bosh delete-env [deploymentFile] [--state path] [-v ...] [-o ...] [--vars-store path]
  • 설명

    매니페스트를 기반으로 이전에 만든 VM을 삭제, create-env 명령에 제공된 것과 동일한 플래그를 delete-env 명령에 제공해야한다.

  • 파라미터

  • 사용 예시

      $ bosh delete-env ~/workspace/bosh-deployment/bosh.yml \
        --state state.json \
        --vars-store ./creds.yml \
        -o ~/workspace/bosh-deployment/virtualbox/cpi.yml \
        -o ~/workspace/bosh-deployment/virtualbox/outbound-network.yml \
        -o ~/workspace/bosh-deployment/bosh-lite.yml \
        -o ~/workspace/bosh-deployment/jumpbox-user.yml \
        -v director_name=vbox \
       -v internal_ip=192.168.56.6 \
        -v internal_gw=192.168.56.1 \
        -v internal_cidr=192.168.56.0/24 \
        -v network_name=vboxnet0 \
        -v outbound_network_name=NatNetwork

BOSH CLI - Session

bosh log-in

  • 기본 Syntax

      $ bosh -e [my-env] l
  • 설명

    주어진 사용자를 Director에 로그인합니다.

  • 파라미터

  • 사용 예시

      $ bosh -e my-env l
      User (): admin
      Password ():

bosh log-out

  • 기본 Syntax

      $ bosh -e [my-env] log-out 
  • 설명

    현재 접속 한 디렉터 로그아웃

  • 파라미터

  • 사용 예시

      $ bosh log-out 
      Logged out from '192.168.10.241'
    
      Succeeded

BOSH CLI - Stemcells

bosh Stemcells

  • 기본 Syntax

      $ bosh -e [my-env] stemcells (Alias: ss)
  • 설명

    업로드 한 릴리즈 조회

  • 파라미터

  • 사용 예시

      $ bosh -e my-env ss
      Using environment '192.168.56.6' as '?'
    
      Name                                         Version  OS             CPI  CID
      bosh-warden-boshlite-ubuntu-trusty-go_agent  3363*    ubuntu-trusty  -    6cbb176a-6a43-42...
      ~                                            3312     ubuntu-trusty  -    43r3496a-4rt3-52...
      bosh-warden-boshlite-centos-7-go_agent       3363*    centos-7       -    38yr83gg-349r-94...
    
      (*) Currently deployed
    
      3 stemcells
    
      Succeeded

bosh upload-stemcell

  • 기본 Syntax

      $ bosh -e [my-env] upload-stemcell [location] [--sha1=digest] [--fix]
  • 설명

    스템셀 업로드

  • 파라미터

  • 사용 예시

      $ bosh -e my-env us ~/Downloads/bosh-stemcell-3468.17-warden-boshlite-ubuntu-trusty-go_agent.tgz
    
      $ bosh -e my-env us https://bosh.io/d/stemcells/bosh-stemcell-warden-boshlite-ubuntu-trusty-go_agent?v=3468.17

bosh delete-stemcell

  • 기본 Syntax

      $ bosh -e [my-env] delete-stemcell [name]/[version]
  • 설명

    업로드 한 스템셀 삭제

  • 파라미터

  • 사용 예시

      $ bosh -e my-env delete-stemcell bosh-warden-boshlite-ubuntu-trusty-go_agent/3468.17

bosh repack-stemcell

  • 기본 Syntax

      $ bosh repack-stemcell src.tgz dst.tgz [--name=name] [--version=ver] [--cloud-properties=json-string]
  • 설명

    기존 스템셀의 이름, 버전 및 클라우드 등록 정보와 같은 업데이트 된 등록 정보로 새로운 스템셀 타르볼을 생성 참조 URL: https://bosh.io/docs/repack-stemcell.html

  • 파라미터

  • 사용 예시

      $ bosh repack-stemcell --name=acme-ubuntu-encrypted --cloud-properties='{"encrypted": true, "kms_key_arn": "arn:aws:kms:us-east-1:088444384256:key/4ffbe966-d138-4f4d-a077-4c234d05b3b1"}' bosh-stemcell-3363.9-aws-xen-hvm-ubuntu-trusty-go_agent.tgz acme-encrypted-stemcell.tgz

BOSH CLI - Release creation

bosh init-release

  • 기본 Syntax

      $ bosh init-release [--git] [--dir=dir]
  • 설명

    dir에 릴리즈에 관련한 구성 파일을 생성 dir을 사용 않할 경우는 현재 디렉토리

  • 파라미터

  • 파라미터

      $ bosh init-release --git --dir release-dir
      $ cd release-dir

bosh generate-job

  • 기본 Syntax

      $ bosh generate-job [name] [--dir=dir]
  • 설명

    dir에 릴리즈에 대한 Job에 관련 한 빈 파일 생성

  • 파라미터

  • 사용 예시

      $ bosh generate-job jenkins

bosh generate-package

  • 기본 Syntax

      $ bosh generate-pakage [name] [--dir=dir]
  • 설명

    dir에 릴리즈에 대한 pakage에 관련 한 빈 파일 생성

  • 파라미터

  • 사용 예시

      $ bosh generate-package jenkins

bosh vendor-package

  • 기본 Syntax

      $ bosh vendor-package [name] src-dir [--dir=dir]
  • 설명

    다른 릴리스의 패키지를 dir의 릴리스로 제공, 릴리즈를 만들 때 CLI가 특정 패키리를 참조 하도록 디렉토리에 spec.lock을 포함 설명 참조 https://bosh.io/docs/package-vendoring.html

  • 파라미터

  • 사용 예시

      $ bosh vendor-package golang-1.8-linux ~/workspace/golang-release

bosh create-release

  • 기본 Syntax

      $ bosh create-release [--force] [--version=ver] [--timestamp-version] [--final] [--tarball=path] [--dir=dir] (Alias: cr)
  • 설명

    dir에 저장된 릴리스의 새 버전을 생성

  • 파라미터

  • 사용 예시

      $ bosh create-release --force

bosh finalize-release

  • 기본 Syntax

      $ bosh finalize-release [path] [--force] [--version=ver] [--dir=dir]
  • 설명

    선택적으로 주어진 버전으로 최종 릴리스로 릴리스 타볼의 내용을 기록

  • 파라미터

  • 사용 예시

      $ cd release-dir
      $ bosh finalize-release /tmp/my-release.tgz
      $ bosh finalize-release /tmp/my-release.tgz --version 20
      $ git commit -am 'Final release 20'
      $ git push origin master

bosh reset-release

  • 기본 Syntax

      $ bosh reset-release [--dir=dir]
  • 설명

    릴리스 디렉토리에 보관 된 dev 릴리스, blob 등의 임시 아티팩트를 제거

  • 파라미터

  • 사용 예시

      $ bosh reset-release ~/Download/jenkins

BOSH CLI - Release blobs

bosh blob

  • 기본 Syntax

      $ bosh blobs
  • 설명

    릴리즈 Blobstore에 등록 한 blob 출력

  • 사용 예시

      $ cd release-dir
      $ bosh blobs
      Path                               Size     Blobstore ID         Digest
      golang/go1.6.2.linux-amd64.tar.gz  81 MiB   f1833f76-ad8b-4b...  b8318b0...
      stress/stress-1.0.4.tar.gz         187 KiB  (local)              e1533bc...
    
      2 blobs
    
      Succeeded

bosh add-blob

  • 기본 Syntax

      $ bosh add-blob [src-path] [dst-path]
  • 설명

    릴리즈 Blobstore에 로컬 blob 추가

  • 파라미터

  • 사용 예시

      $ cd release-dir
      $ bosh add-blob ~/Downloads/stress-1.0.4.tar.gz stress/stress-1.0.4.tar.gz

bosh reomove-blob

  • 기본 Syntax

      $ bosh remove-blob [blob-path]
  • 설명

    릴리즈 Blobstore에 존재 하는 Blob 삭제

  • 파라미터

  • 사용 예시

      $ cd release-dir
      $ bosh remove-blob stress/stress-1.0.4.tar.gz

bosh sync-blob

  • 기본 Syntax

      $ bosh sync-blobs
  • 설명

    릴리즈 내 blobstore의 blob 동기화

  • 사용 예시

      $ cd release-dir
      $ bosh sync-blobs

BOSH CLI - Releases

bosh releases

  • 기본 Syntax

      $ bosh -e [my-env] releases (Alias: rs)
  • 설명

    업로드 한 릴리즈 조회

  • 파라미터

  • 사용 예시

      $ bosh -e my-env rs
      Using environment '192.168.56.6' as client 'admin'
    
      Name               Version   Commit Hash
      capi               1.21.0*   716aa812
      cf-mysql           34*       e0508b5
      cf-smoke-tests     11*       a6dad6e
      cflinuxfs2-rootfs  1.52.0*   4827ef51+
      consul             155*      22515a98+
      diego              1.8.1*    0cca668e
      dns                3*        57e27da
      etcd               94*       57c81e16
      garden-runc        1.2.0*    2b3dedc5
      loggregator        78*       773a3ba
      nats               15*       d4dfc4c1+
      routing            0.145.0*  dfb44c41+
      statsd-injector    1.0.20*   552926d
      syslog             9         ac2172f
      uaa                25*       86ec7568
    
      (*) Currently deployed
      (+) Uncommitted changes
    
      15 releases
    
      Succeeded

bosh upload-release

  • 기본 Syntax

      $ bosh -e [my-env] upload-release [location] [--version=ver] [--sha1=digest] [--fix] (Alias: ur)
  • 설명

    릴리즈 업로드

  • 파라미터

  • 사용 예시

      $ bosh -e my-env ur
      $ bosh -e my-env ur https://bosh.io/d/github.com/concourse/concourse?v=2.7.3
      $ bosh -e my-env ur git+https://github.com/concourse/concourse --version 2.7.3

bosh delete-release

  • 기본 Syntax

      $ bosh -e [my-env] delete-release [name]/[version]
  • 설명

    업로드 한 릴리즈 삭제

  • 파라미터

  • 사용 예시

      $ bosh -e my-env delete-release cf-smoke-tests/94

bosh export-release

  • 기본 Syntax

      $ bosh -e [my-env] -d my-dep export-release [name]/[version] [os]/[version] [--dir=dir]
  • 설명

    특정 스템셀에 대한 릴리즈를 컴파일 하고 내보낸다

  • 파라미터

  • 사용 예시

      $ bosh -e my-env -d my-dep export-release cf-smoke-tests/94 ubuntu-trusty/3369

bosh inspect-release

  • 기본 Syntax

      $ bosh -e [my-env] inspect-release [name]/[version]
  • 설명

    모든 Job, Job의 메타데이터 패키지 및 릴리즈 버전과 관련 된 패키지를 출력

  • 파라미터

  • 사용 예시

      $ bosh -e gcp-test inspect-release consul/155
      Using environment '192.168.56.6' as client 'admin'
    
      Job                                                                    Blobstore ID       Digest       Links Consumed    Links Provided
      acceptance-tests/943c6083581e623dc66c7d9126d8e5989c4c2b31              0f3cd013-1d3d-...  17e5e4fc...  -                 -
      consul-test-consumer-windows/6748c0675da2292c680da03e89b738a9d5818370  7461c74c-745d-...  9809861c...  -                 -
      consul-test-consumer/7263db87ba85eaf0dd41bd198359c8597e961839          8bde4572-8e8b-...  7b08b059...  -                 -
      consul_agent/b4872109282347700eaa884dcfe93f3a03dc22dd                  e41f705e-2cb7-...  a8db2c76...  - name: consul    - name: consul
                                                                                                               type: consul      type: consul
                                                                                                               optional: true
      consul_agent_windows/a0b91cb0aa1029734d77fcf064dafdb67f14ada6          3a8755d0-7a39-...  17f07ec0...  - name: consul    - name: consul
                                                                                                               type: consul      type: consul
                                                                                                               optional: true
      fake-dns-server/a1ea5f64de0860512470ace7ce2376aa9470f9b1               5bb53f17-eba9-...  0565f9af...  -                 -
    
      6 jobs
    
      Package                                                            Compiled for          Blobstore ID            Digest
      acceptance-tests-windows/e36cef763e5cfd4e28738ad314807e6d1e13b960  (source)              03589024-2596-49fc-...  96eaaf4ba...
      acceptance-tests/9d56ac03d7410dcdfd96a8c96bbc79eb4b53c864          (source)              79fb9ba7-cd23-4b93-...  e08ee88f5...
      confab-windows/52b117effcd95138eca94c789530bcd6499cff9d            (source)              53d4b206-b064-462d-...  43f92c8d0...
      confab/b2ff0bbd68b7d600ecb1ffaf41f59af073e894fd                    (source)              b93214eb-a816-4029-...  4b627d264...
      ~                                                                  ubuntu-        trusty/3363.9  f66fe541-8c21-4fe3-...  8e662c2e2...
      consul-windows/2a8e0b7ce1424d1d5efe5c7184791481a0c26424            (source)              9516870b-801e-42ea-...  19db18127...
      consul/6049d3016cd34ac64ccbf7837b06b6db81942102                    (source)              04aa38af-e883-4842-...  c42cacfc7...
      ~                                                                  ubuntu-trusty/3363.9  ab4afda6-881e-46b1-...  27c1390fa...
      golang1.7-windows/1a80382e081cd429cf518f0c783f4e4172cac79e         (source)              d7670210-7038-4749-...  b91caa06a...
      golang1.7/181f7537c2ec17ac2406d9f2eb3322fd80fa2a1c                 (source)              ac8aa36a-8965-46e9-...  ca440d716...
      ~                                                                  ubuntu-trusty/3363.9  9d40794f-0c50-4d0c-...  9d6e29221...
    
      11 packages
    
      Succeeded

BOSH CLI - Configs

bosh configs

  • 기본 Syntax

      $ bosh -e [my-env] configs [--type=my-type] [--name=my-name]
  • 설명

    Director의 모든 구성을 출력

  • 파라미터

  • 사용 예시

      $ bosh -e my-env configs
      Using environment '192.168.50.6' as client 'admin'
    
      Type     Name
      cloud    default
      ~        custom-vm-types
      cpi      default
      runtime  default
    
      3 configs
    
      Succeeded

bosh update-config

  • 기본 Syntax

      $ bosh -e [my-env] update-config [my-type] [config.yml] [--name=my-name]
  • 설명

    Director에서 구성을 추가하거나 업데이트

  • 파라미터

  • 사용 예시

      $ bosh -e my-env config my-type config.yml

bosh delete-config

  • 기본 Syntax

      $ bosh -e [my-env] delete-config [my-type] [--name=my-name]
  • 설명

    Director의 my-type 구성을 삭제

  • 파라미터

  • 사용 예시

      $ bosh -e my-env config my-type config.yml

BOSH CLI - Cloud config

bosh cloud-configs

  • 기본 Syntax

      $ bosh -e [my-env] cloud-config (Alias: cc)
  • 설명

    Deployment Property 설정

  • 파라미터

  • 사용 예시

      $ bosh -e my-env cloud-config

bosh update-cloud-config

  • 기본 Syntax

      $ bosh -e [my-env] update-cloud-config [config.yml] [-v ...] [-o ...] (Alias: ucc)
  • 설명

    Director의 cloud-conifg 구성 요소를 추가 하거나 수정

  • 파라미터

  • 사용 예시

      $ bosh -e my-env ucc cc.yml

BOSH CLI - Runtime config

bosh runtime-configs

  • 기본 Syntax

      $ bosh -e my-env runtime-config (Alias: rc)
  • 설명

    Director의 runtime-conifg 구성 요소를 출력

  • 파라미터

  • 사용 예시

      $ bosh -e my-env runtime-config

bosh update-runtime-config

  • 기본 Syntax

      $ bosh -e my-env update-runtime-config [config.yml] [-v ...] [-o ...] (Alias: urc)
  • 설명

    Director의 cloud-conifg 구성 요소를 추가 하거나 수정

  • 파라미터

  • 사용 예시

      $ bosh -e my-env urc runtime.yml

BOSH CLI - CPI config

bosh cpi-configs

  • 기본 Syntax

      $ bosh -e my-env cpi-config
  • 설명

    Director의 cpi-conifg 구성 요소를 출력

  • 파라미터

  • 사용 예시

      $ bosh -e my-env cpi-config

bosh update-cpi-config

  • 기본 Syntax

      $ bosh -e my-env update-cpi-config config.yml [-v ...] [-o ...]
  • 설명

    Director의 cpi-conifg 구성 요소를 추가 하거나 수정

  • 파라미터

  • 사용 예시

      $ bosh -e my-env update-cpi-config runtime.yml

BOSH CLI – Deployments

bosh deployments

  • 기본 Syntax

      $ bosh -e [my-env] deployments (Alias: ds)
  • 설명

    디렉터가 설치 한 전체 배포 목록을 출력.

  • 파라미터

  • 파라미터

      $ bosh -e my-env ds
      Using environment '192.168.56.6' as client 'admin'
    
      Name                                Release(s)                Stemcell(s)                                         Team(s)  Cloud Config
      cf                                  binary-buildpack/1.0.9    bosh-warden-boshlite-ubuntu-trusty-go_agent/3363.9  -        latest
                                  capi/1.21.0
                                  cf-mysql/34
                                  cf-smoke-tests/11
                                  cflinuxfs2-rootfs/1.52.0
                                  consul/155
                                  diego/1.8.1
                                  etcd/94
                                  garden-runc/1.2.0
                                  loggregator/78
                                  nats/15
                                  routing/0.145.0
                                  statsd-injector/1.0.20
                                  uaa/25
      service-instance_0d4140a0-42b7-...  mysql/0.6.0               bosh-warden-boshlite-ubuntu-trusty-go_agent/3363.9  -        latest
    
      2 deployments
    
      Succeeded

bosh deployment

  • 기본 Syntax

      $ bosh -e [my-env] -d [my-dep] deployment
  • 설명

    디렉터가 지정한 이름의 배포 목록 조회

  • 파라미터

  • 사용 예시

      $ bosh -e vbox -d cf dep
      Using environment '192.168.56.6' as client 'admin'
    
      Name  Release(s)              Stemcell(s)                                         Team(s)  Cloud Config
      cf    binary-buildpack/1.0.9  bosh-warden-boshlite-ubuntu-trusty-go_agent/3363.9  -        latest
        capi/1.21.0
        cf-mysql/34
        cf-smoke-tests/11
        uaa/25
        dns/3
        ...
    
      1 deployments
    
      Succeeded

bosh deploy

  • 기본 Syntax

      $ bosh -e [my-env] -d [my-dep] deploy [manifest.yml] [-v ...] [-o ...]
  • 설명

    디렉터가 지정 한 배포명의 Manifest 파일를 통한 VM 설치

  • 파라미터

  • 사용 예시

      $ bosh -e vbox -d cf deploy cf.yml -v system_domain=sys.example.com -o large-footprint.yml

bosh delete-deployment

  • 기본 Syntax

      $ bosh -e [my-env] -d [my-dep] delete-deployment [--force] (Alias: deld)
  • 설명

    디렉터가 지정 한 배포명의 VM을 삭제 한다.

  • 파라미터

  • 사용 예시

      $ bosh -e vbox -d cf deld

bosh manifest

  • 기본 Syntax

      $ bosh -e [my-env] -d [my-dep] manifest (Alias: man)
  • 설명

    디렉터가 지정 한 배포명의 Manifest 파일을 출력 한다.

  • 파라미터

  • 사용 예시

      $ bosh -e vbox -d cf man > /tmp/manifest.yml

bosh recreate

  • 기본 Syntax

      $ bosh -e [my-env] -d [my-dep] recreate [group[/instance-id]] [--skip-drain] [--fix] [--canaries=] [--max-in-flight=] [--dry-run]
  • 설명

    디렉터가 지정한 배포의 인스턴스에 대한 VM을 재생성 한다.

  • 파라미터

  • 사용 예시

      $ bosh -e vbox -d cf recreate
      $ bosh -e vbox -d cf recreate --fix
      $ bosh -e vbox -d cf recreate diego-cell
      $ bosh -e vbox -d cf recreate diego-cell/209c42e5-3c1a-432a-8445-ab8d7c9f69b0
      $ bosh -e vbox -d cf recreate diego-cell/209c42e5-3c1a-432a-8445-ab8d7c9f69b0 --skip-drain
      $ bosh -e vbox -d cf recreate diego-cell --canaries=0 --max-in-flight=100%

bosh restart

  • 기본 Syntax

      $ bosh -e [my-env] -d [my-dep] restart [group[/instance-id]] [--skip-drain] [--canaries=] [--max-in-flight=]
  • 설명

    디렉터가 지정한 배포의 인스턴스에 대한 VM을 재시작 한다.

  • 파라미터

  • 사용 예시

      $ bosh -e my-env -d my-dep restart

bosh start

  • 기본 Syntax

      $ bosh -e [my-env] -d [my-dep] start [group[/instance-id]] [--canaries=] [--max-in-flight=]
  • 설명

    디렉터가 지정한 배포의 인스턴스에 대한 VM을 시작 한다.

  • 파라미터

  • 사용 예시

      $ bosh -e my-env -d my-dep start

bosh stop

  • 기본 Syntax

      $ bosh -e [my-env] -d [my-dep] stop [group[/instance-id]] [--skip-drain] [--canaries=] [--max-in-flight=]
  • 설명

    디렉터가 지정한 배포의 인스턴스에 대한 VM을 시작 한다.

  • 파라미터

  • 사용 예시

      $ bosh -e my-env -d my-dep stop

bosh ignore

  • 기본 Syntax

      $ bosh -e [my-env] -d [my-dep] ignore group/instance-id
  • 설명

    bosh deploy와 같은 다른 명령의 영향을 받지 않도록 인스턴스를 무시

  • 파라미터

  • 사용 예시

      $ bosh -e my-env -d my-dep ignore cell

bosh unignore

  • 기본 Syntax

      $ bosh -e [my-env] -d [my-dep] unignore group/instance-id
  • 설명

    bosh deploy와 같은 다른 명령의 영향을받지 않도록 인스턴스를 무시하지 않는다

  • 파라미터

  • 사용 예시

      $ bosh -e my-env -d my-dep unignore cell

bosh logs

  • 기본 Syntax

      $ bosh -e [my-env] -d [my-dep] logs [group[/instance-id]] [--follow] [--num] [--gw-*] [--quiet]
  • 설명

    하나 이상의 인스턴스에서 로그를 다운로드

  • 파라미터

  • 사용 예시

      $ bosh -e vbox -d cf logs diego-cell/209c42e5-3c1a-432a-8445-ab8d7c9f69b0
      $ bosh -e vbox -d cf logs diego-cell/209c42e5-3c1a-432a-8445-ab8d7c9f69b0 --job=rep --job=silkd
      $ bosh -e vbox -d cf logs -f
      $ bosh -e vbox -d cf logs -f --num=1000

BOSH CLI - VMs

bosh vms

  • 기본 Syntax

      $ bosh -e [my-env] -d [my-dep] vms [--vitals]
  • 설명

    Director 가 관리하는 또는 deployment 의 모든 vm 조회

  • 파라미터

  • 사용 예시

      $ bosh -e vbox vms
      $ bosh -e vbox -d cf vms
      $ bosh -e vbox -d cf vms --vitals

bosh delete-vms

  • 기본 Syntax

      $ bosh -e [my-env] -d [my-dep] delete-vm [cid]
  • 설명

    인스턴스의 Lifecycle을 거치지 않고 VM을 삭제

  • 파라미터

  • 사용 예시

      $ bosh -e vbox -d cf delete-vm i-fs384238fjwjf8

BOSH CLI - Disks

bosh disks

  • 기본 Syntax

      $ bosh -e [my-env] -d [my-dep] disks [--orphaned]
  • 설명

    Director가 관리하는 또는 deployment의 모든 disk 조회

  • 파라미터

  • 사용 예시

      $ bosh -e vnps -d cf disks  

bosh attach-disk

  • 기본 Syntax

      $ bosh -e [my-env] -d [my-dep] attach-disk [group/instance-id] disk-cid
  • 설명

    인스턴스에 disk attach. 만약 attach된 disk 가 있다면 가장 최근 attach 된 disk를 replace한다.

  • 파라미터

  • 사용 예시

      $ bosh -e vbox -d cf attach-disk postgres/209c42e5-3c1a-432a-8445-ab8d7c9f69b0 vol-shw8f293f2f2

bosh delete-disk

  • 기본 Syntax

      $ bosh -e [my-env] -d [my-dep] delete-disk [cid]
  • 설명

    사용하지 않는 disk 삭제

  • 파라미터

  • 사용 예시

      $ bosh -e vbox -d cf delete-disk vol-shw8f293f2f2

BOSH CLI - SSH

bosh ssh

  • 기본 Syntax

      $ bosh -e [my-env] -d [my-dep] ssh [destination] [-r] [-c=cmd] [--opts=opts] [--gw-* ...]
  • 설명

    인스턴스 한개 또는 여러 개에 SSH설정

  • 파라미터

  • 사용 예시

      # execute command on all instances in a deployment
      $ bosh -e vbox -d cf ssh -c 'uptime'
    
      # execute command on one instance group
      $ bosh -e vbox -d cf ssh diego-cell -c 'uptime'
    
      # execute command on a single instance
      $ bosh -e vbox -d cf ssh diego-cell/209c42e5-3c1a-432a-8445-ab8d7c9f69b0 -c 'uptime'
    
      # execute command with passwordless sudo
      $ bosh -e vbox -d cf ssh diego-cell -c 'sudo lsof -i|grep LISTEN'
    
      # present output in a table by instance
      $ bosh -e vbox -d cf ssh -c 'uptime' -r
    
      # port forward UAA port locally
      $ bosh -e vbox -d cf ssh uaa/0 --opts ' -L 8080:localhost:8080'

bosh scp

  • 기본 Syntax

      $ bosh -e [my-env] -d [my-dep] scp src/dst:[file] src/dst:[file] [-r] [--gw-* ...]
  • 설명

    인스턴스로 또는 인스턴스로 부터 SCP (to/from)설정

  • 파라미터

  • 사용 예시

      # copy file from this machine to machines a deployment
      $ bosh -e vbox -d cf scp ~/Downloads/script.sh :/tmp/script.sh
      $ bosh -e vbox -d cf scp ~/Downloads/script.sh diego-cell:/tmp/script.sh
      $ bosh -e vbox -d cf scp ~/Downloads/script.sh diego-cell/209c42e5-3c1a-432a-8445-ab8d7c9f69b0:/tmp/script.sh
      $ bosh -e vbox -d cf scp ~/Downloads/script.ps1 windows_diego_cell:c:/temp/script/script.ps1
    
      # copy file from remote machines in a deployment to this machine
      $ bosh -e vbox -d cf scp :/tmp/script.sh ~/Downloads/script.sh
      $ bosh -e vbox -d cf scp diego-cell:/tmp/script.sh ~/Downloads/script.sh
      $ bosh -e vbox -d cf scp diego-cell/209c42e5-3c1a-432a-8445-ab8d7c9f69b0:/tmp/script.sh ~/Downloads/script.sh
      $ bosh -e vbox -d cf scp windows_diego_cell:c:/temp/script/script.ps1:~/Downloads/script.ps1
    
      # copy files from each instance into instance specific local directory
      $ bosh -e vbox -d cf scp diego-cell:/tmp/logs/ /tmp/logs/((instance_id))

BOSH CLI - Errands

bosh errands

  • 기본 Syntax

      $ bosh -e [my-env] -d [my-dep] errands (Alias:es)
  • 설명

    deployment로 정의 된 모든 errand 목록 조회

  • 파라미터

  • 사용 예시

      $ bosh -e vbox -d cf es
      Using environment '192.168.56.6' as '?'
    
      Using deployment 'cf'
    
      Name
      smoke-tests
    
      1 errands
    
      Succeeded

bosh run-errand

  • 기본 Syntax

      $ bosh -e <my-env> -d <my-dep> run-errand <name> [--keep-alive] [--when-changed] [--download-logs] [--logs-dir=<dir>] [--instance=<instance-group/instance-id>]
  • 설명

    errand job 을 name 단위로 실행

  • 파라미터

  • 사용 예시

      $ bosh -e vbox -d cf run-errand smoke-tests
      $ bosh -e vbox -d cf run-errand smoke-tests --keep-alive
      $ bosh -e vbox -d cf run-errand smoke-tests --when-changed
    
      # execute errand on all instances that have colocated status errand
      $ bosh -e vbox -d zookeeper run-errand status
    
      # execute errand on one instance
      $ bosh -e vbox -d zookeeper run-errand status --instance zookeeper/3e977542-d53e-4630-bc40-72011f853cb5
    
      # execute errand on one instance within an instance group
      # (note that select instance may not necessarily be first based on its index)
      $ bosh -e vbox -d zookeeper run-errand status --instance zookeeper/first
    
      # execute errand on all instance in an instance group
      $ bosh -e vbox -d zookeeper run-errand status --instance zookeeper
    
      # execute errand on two instances
      $ bosh -e vbox -d zookeeper run-errand status \
            --instance zookeeper/671d5b1d-0310-4735-8f58-182fdad0e8bc \
            --instance zookeeper/3e977542-d53e-4630-bc40-72011f853cb5

BOSH CLI - Tasks

bosh tasks

  • 기본 Syntax

      $ bosh -e [my-env] tasks [--recent[=num]] [--all] (Alias: ts)
  • 설명

    활성 및 이전에 실행 한 작업에 대한 task를 출력

  • 파라미터

  • 사용 예시

      # currently active tasks
      $ bosh -e vbox ts
    
      # currently active tasks for my-dep deployment
      $ bosh -e vbox -d my-dep ts
      Using environment '192.168.56.6' as '?'
    
      #   State  Started At                    Last Activity At              User   Deployment   Description                   Result
    
      27  done   Thu Feb 16 19:16:15 UTC 2017  Thu Feb 16 19:20:33 UTC 2017  admin  cockroachdb  create deployment             /deployments/cockroachdb
      26  done   Thu Feb 16 18:54:32 UTC 2017  Thu Feb 16 18:55:27 UTC 2017  admin  cockroachdb  delete deployment cockroachd  /deployments/cockroachdb
      ...
    
      110 tasks
    
      Succeeded
    
      # show last 30 tasks
      $ bosh -e vbox ts -r --all
    
      # show last 1000 tasks
      $ bosh -e vbox ts -r=1000

bosh task

  • 기본 Syntax

      $ bosh -e [my-env] task [id] [--debug] [--result] [--event] [--cpi] (Alias: t)
  • 설명

    task 아이디를 기준으로 상세 조회.

  • 파라미터

  • 사용 예시

      $ bosh -e vbox t 281
      $ bosh -e vbox t 281 --debug

bosh cancle-task

  • 기본 Syntax

      $ bosh -e [my-env] cancel-task [id] (Alias: ct)
  • 설명

    task 취소. 다음 checkpoint 에서 task를 취소 한다. task가 취소될 때까지 대기하지 않는다

  • 파라미터

BOSH CLI - Snapshot

bosh snapshots

  • 기본 Syntax

      $ bosh -e [my-env] -d [my-dep] snapshots
  • 설명

    deployment의 스냅샷 목록을 출력 한다.

  • 파라미터

  • 사용 예시

      $ bosh -e my-env -d my-dep snapshots

bosh take-snapshot

  • 기본 Syntax

      $ bosh -e [my-env] -d [my-dep] take-snapshot [group/instance-id]
  • 설명

    특정 인스턴스 또는 deployment에 대한 스냅샷을 생성 한다.

  • 파라미터

  • 사용 예시

      $ bosh -e my-env -d my-dep take-snapshot cell

bosh delete-snapshot

  • 기본 Syntax

      $ bosh -e [my-env] -d [my-dep] delete-snapshot [cid]
  • 설명

    특정 스냅샷을 삭제 한다.

  • 파라미터

  • 사용 예시

      $ bosh -e my-env -d my-dep delete-snapshot 1acsda-ccas

bosh delete-snapshots

  • 기본 Syntax

      $ bosh -e [my-env] -d [my-dep] delete-snapshots
  • 설명

    스냅샷을 전체 삭제 한다.

  • 파라미터

  • 사용 예시

      $ bosh -e my-env -d my-dep delete-snapshots

BOSH CLI - Deployment recovery

bosh update-resurrection

  • 기본 Syntax

      $ bosh -e [my-env] update-resurrection [on/off]
  • 설명

    디렉터가 지정한 환경에 대해 recovery를 활성/비활성화

  • 파라미터

  • 사용 예시

      $ bosh -e my-env update-resurrection on

bosh cloud-check

  • 기본 Syntax

      $ bosh -e [my-env] -d [my-dep] cloud-check [--report] [--auto] (Alias: cck)
  • 설명

    리소스에 대해 일관적인 검사를 하고 대화 형 복구를 허용 한다.

  • 파라미터

  • 사용 예시

      $ bosh -e vbox -d cf cloud-check --report --auto

bosh locks

  • 기본 Syntax

      $ bosh -e [my-env] locks
  • 설명

    최근 lock 목록 조회

  • 파라미터

  • 사용 예시

      $ bosh -e my-env locks

BOSH CLI - Misc

bosh clean-up

  • 기본 Syntax

      $ bosh -e [my-env] clean-up [--all]
  • 설명

    releases, stemcells, orphaned disks 그리고 사용되지 않는 다른 리소스를 clean up 한다

  • 파라미터

  • 사용 예시

      $ bosh -e my-env clean-up --all

bosh help

  • 기본 Syntax

      $ bosh help
  • 설명

    사용 가능한 모든 명령어와 global option 목록 조회 각각의 command에 대해서는 -h 사용

  • 파라미터

      없음
  • 사용 예시

      $ bosh help
    
      $ bosh upload-release -h

bosh interpolate

  • 기본 Syntax

      $ bosh interpolate manifest.yml [-v ...] [-o ...] [--vars-store path] [--path op-path] (Alias: int)
  • 설명

    결과 값 이 sudout로 넘겨지는 Manifest.yml에 추가적으로 merge할 yml 파일이나 설정 값을 입력

  • 파라미터

  • 사용 예시

      $ bosh int bosh-deployment/bosh.yml \
            --vars-store ./creds.yml \
            -o bosh-deployment/virtualbox/cpi.yml \
            -o bosh-deployment/virtualbox/outbound-network.yml \
            -o bosh-deployment/bosh-lite.yml \
            -o bosh-deployment/jumpbox-user.yml \
            -v director_name=vbox \
            -v internal_ip=192.168.56.6 \
            -v internal_gw=192.168.56.1 \
            -v internal_cidr=192.168.56.0/24 \
            -v network_name=vboxnet0 \
            -v outbound_network_name=NatNetwork
    
      $ bosh int creds.yml --path /admin_password
      skh32i7rdfji4387hg
    
      $ bosh int creds.yml --path /director_ssl/ca
      -----BEGIN CERTIFICATE-----

Last updated