본 문서는 BOSH에 대한 설치 및 운영 관리를 위한 도구인 BOSH CLI v2에 대해 기본 사용법 및 사용 예시를 통해 BOSH를 이해하는데 목적이 있다.
본 문서에서는 BOSH CLI V2 사용법에 대해서 작성하였다.
본 문서는 Cloud Foundry의 BOSH Document(http://bosh.io)를 참고로 작성하였다.
CLI는 BOSH 배포와 Release를 관리하기 위해 도움을 주는 커맨드 라인 명령어로 아래와 같이 구분된다.
bosh-cli: BOSH를 관리하기 위한 CLI
기본 Syntax
$ bosh [<options>] <command> [<args>]
bosh 명령어에 대괄호로 묶인 인자인 과 는 명령어에 따라 선택적으로 사용되고, 인자는 필수 인자이다.
Options
번호 | 옵션 | 설명 |
1 | -c, --config | BOSH configuration file 지정 |
2 | --ca-cert | Director 및 UAA 연결에 사용 되는 CA 인증서 지정 |
3 | --client | 사용자 이름 또는 UAA 클라이언트 재정의 |
4 | -n | 입력 사용이 필요한 확인 |
5 | --json | 출력 형식을 JSON으로 변경 |
6 | --tty | 명령이 리디렉션되지 않을 때 일반적으로 표시되는 모든 텍스트를 출력에 포함 |
7 | --no-color | 색상을 비활성화 |
8 | --deployment, -d | Deploy 명령을 위한 배치 지정 |
9 | -h, --help | Help 메시지 보기 |
10 | --column= | 지정된 열만 표시하도록 필터링 |
11 | -e, --enviroment | SHA256 체크섬 사용 |
12 | --sha2 | BOSH 배포파일 지정 |
13 | --parallel= | 병렬 작업의 최대 수 |
14 | --client-secret= | 암호 또는 UAA 클라이언트 암호 재정의 |
기본 Syntax
$ bosh environments (Alias: envs)
설명
BOSH CLI에 등록 한 디렉터의 별명이 지정된 환경을 나열
파라미터
사용 예시
$ bosh envsURL Alias104.154.171.255 gcp192.168.56.6 vbox2 environmentsSucceeded
기본 Syntax
$ bosh create-env [deploymentFile] [--state path] [-v ...] [-o ...] [--vars-store path]
설명
BOSH CLI를 통해 Manifest File을 기반으로 단일 VM을 생성. 일반적으로 Director 환경을 만드는 데 사용
파라미터
파라미터 명 | 설명 | 필수**(O/X)** |
deploymentFile | 설치 Manfiest 파일 | O |
--state path | Deployment state 파일 경로 | X |
-v | Manifest Replace 변수 ex) internal_ip, deployment_name | X |
-o | option Manifest File ex) jumpbox-user.yml, uaa.yml... | X |
--vars -store path | creds.yml 파일, 인증 키 및 Job Password yml 파일 경로 | X |
사용 예시
$ 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
기본 Syntax
$ bosh alias-env [name] -e [location] [--ca-cert=path]
설명
BOSH CLI를 통해 엑세스 할 디렉터의 별명이 지정
파라미터
파라미터 명 | 설명 | 필수**(O/X)** |
name | 환경 이름 지정 | O |
location | 디렉터 위치 지정 | O |
--ca-cert=path | CA 인증서를 지정 | X |
기본 Syntax
$ bosh -e [my-env] environment (Alias: env)
설명
해당 Director 정보를 출력
파라미터
파라미터 명 | 설명 | 필수**(O/X)** |
my-env | 지정 한 Director 환경 이름 명칭 | O |
사용 예시
$ bosh -e vbox envUsing environment '192.168.56.6' as '?'Name vboxUUID eeb27cc6-467e-4c1d-a8f9-f1a8de759f52Version 260.5.0 (00000000)CPI warden_cpiFeatures compiled_package_cache: disableddns: disabledsnapshots: disabledUser adminSucceeded
기본 Syntax
$ bosh delete-env [deploymentFile] [--state path] [-v ...] [-o ...] [--vars-store path]
설명
매니페스트를 기반으로 이전에 만든 VM을 삭제, create-env 명령에 제공된 것과 동일한 플래그를 delete-env 명령에 제공해야한다.
파라미터
파라미터 명 | 설명 | 필수**(O/X)** |
deploymentFile | 설치 한 Manfiest 파일 | O |
--state path | Deployment state 파일 경로 | O |
-v | Manifest Replace 변수 ex) internal_ip, deployment_name | X |
-o | option Manifest File ex) jumpbox-user.yml, uaa.yml… | X |
--vars -store path | creds.yml 파일, 인증 키 및 Job Password yml 파일 경로 | X |
사용 예시
$ 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
기본 Syntax
$ bosh -e [my-env] l
설명
주어진 사용자를 Director에 로그인합니다.
파라미터
파라미터 명 | 설명 | 필수**(O/X)** |
my-env | BOSH 지정 한 Director 환경 이름 명칭 | O |
사용 예시
$ bosh -e my-env lUser (): adminPassword ():
기본 Syntax
$ bosh -e [my-env] log-out
설명
현재 접속 한 디렉터 로그아웃
파라미터
파라미터 명 | 설명 | 필수**(O/X)** |
my-env | BOSH 지정 한 Director 환경 이름 명칭 | O |
사용 예시
$ bosh log-outLogged out from '192.168.10.241'Succeeded
기본 Syntax
$ bosh -e [my-env] stemcells (Alias: ss)
설명
업로드 한 릴리즈 조회
파라미터
파라미터 명 | 설명 | 필수**(O/X)** |
my-env | 지정 한 Director 환경 이름 명칭 | O |
사용 예시
$ bosh -e my-env ssUsing environment '192.168.56.6' as '?'Name Version OS CPI CIDbosh-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 deployed3 stemcellsSucceeded
기본 Syntax
$ bosh -e [my-env] upload-stemcell [location] [--sha1=digest] [--fix]
설명
스템셀 업로드
파라미터
파라미터 명 | 설명 | 필수**(O/X)** |
my-env | 지정 한 Director 환경 이름 명칭 | O |
location | 스템셀 파일 위치 및 URL 지정 | X |
--sha1 | 스템셀 파일 sha1um 값 확인 | X |
--fix | 이전에 업로드 한 스템 셀을 동일한 이름과 버전으로 교체 | X |
사용 예시
$ 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
기본 Syntax
$ bosh -e [my-env] delete-stemcell [name]/[version]
설명
업로드 한 스템셀 삭제
파라미터
파라미터 명 | 설명 | 필수**(O/X)** |
my-env | 지정 한 Director 환경 이름 명칭 | O |
name | 삭제 할 스템셀 명 | O |
version | 삭제 할 스템셀 버전 | O |
사용 예시
$ bosh -e my-env delete-stemcell bosh-warden-boshlite-ubuntu-trusty-go_agent/3468.17
기본 Syntax
$ bosh repack-stemcell src.tgz dst.tgz [--name=name] [--version=ver] [--cloud-properties=json-string]
설명
기존 스템셀의 이름, 버전 및 클라우드 등록 정보와 같은 업데이트 된 등록 정보로 새로운 스템셀 타르볼을 생성 참조 URL: https://bosh.io/docs/repack-stemcell.html
파라미터
파라미터 명 | 설명 | 필수**(O/X)** |
name | 업데이트 등록 스템셀 명 | O |
version | 업데이트 등록 스템셀 버전 | X |
cloud-properties | 업데이트 등록 스템셀 cloud-properties, Json 형식 | X |
사용 예시
$ 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
기본 Syntax
$ bosh init-release [--git] [--dir=dir]
설명
dir에 릴리즈에 관련한 구성 파일을 생성 dir을 사용 않할 경우는 현재 디렉토리
파라미터
파라미터 명 | 설명 | 필수**(O/X)** |
--git | BOSH 릴리즈 Git repository에 적절한 .gitignore 파일을 생성 | X |
--dir | 디렉토리에 대한 빈 릴리스 구성 파일 생성 | X |
파라미터
$ bosh init-release --git --dir release-dir$ cd release-dir
기본 Syntax
$ bosh generate-job [name] [--dir=dir]
설명
dir에 릴리즈에 대한 Job에 관련 한 빈 파일 생성
파라미터
파라미터 명 | 설명 | 필수**(O/X)** |
name | 릴리즈 Job 명칭 | O |
--dir | 디렉토리에 대한 Job 관련 빈 릴리스 구성 파일 생성 | X |
사용 예시
$ bosh generate-job jenkins
기본 Syntax
$ bosh generate-pakage [name] [--dir=dir]
설명
dir에 릴리즈에 대한 pakage에 관련 한 빈 파일 생성
파라미터
파라미터 명 | 설명 | 필수**(O/X)** |
name | 릴리즈 pakage 명칭 | O |
--dir | 디렉토리에 pakage Job 관련 빈 릴리스 구성 파일 생성 | X |
사용 예시
$ bosh generate-package jenkins
기본 Syntax
$ bosh vendor-package [name] src-dir [--dir=dir]
설명
다른 릴리스의 패키지를 dir의 릴리스로 제공, 릴리즈를 만들 때 CLI가 특정 패키리를 참조 하도록 디렉토리에 spec.lock을 포함 설명 참조 https://bosh.io/docs/package-vendoring.html
파라미터
파라미터 명 | 설명 | 필수**(O/X)** |
name | 릴리즈 pakage명칭 | O |
--dir | 디렉토리에 대한 package 관련 빈 릴리스 구성 파일 생성 | X |
사용 예시
$ bosh vendor-package golang-1.8-linux ~/workspace/golang-release
기본 Syntax
$ bosh create-release [--force] [--version=ver] [--timestamp-version] [--final] [--tarball=path] [--dir=dir] (Alias: cr)
설명
dir에 저장된 릴리스의 새 버전을 생성
파라미터
파라미터 명 | 설명 | 필수**(O/X)** |
--force | 릴리스 디렉토리에서 커밋되지 않은 변경 사항을 무시하도록 지정 | X |
--version | 사용자 정의 릴리스 버전을 제공 | X |
--version | 사용자 정의 릴리스 버전을 제공 | X |
--timestamp-version | 타임 스탬프 기반의 dev 릴리즈 버전을 생성 | X |
--tarball | 릴리스 타르볼의 대상을 지정 | X |
--sha2 | SHA256 체크섬 사용 지정 | X |
사용 예시
$ bosh create-release --force
기본 Syntax
$ bosh finalize-release [path] [--force] [--version=ver] [--dir=dir]
설명
선택적으로 주어진 버전으로 최종 릴리스로 릴리스 타볼의 내용을 기록
파라미터
파라미터 명 | 설명 | 필수**(O/X)** |
path | 릴리즈 tarball 지정 | O |
--force | 릴리스 디렉토리에서 커밋되지 않은 변경 사항을 무시하도록 지정 | X |
--version | 사용자 정의 릴리스 버전을 제공 | X |
--dir | 디렉토리 위치 지정 | X |
사용 예시
$ 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
기본 Syntax
$ bosh reset-release [--dir=dir]
설명
릴리스 디렉토리에 보관 된 dev 릴리스, blob 등의 임시 아티팩트를 제거
파라미터
파라미터 명 | 설명 | 필수**(O/X)** |
--dir | 디렉토리 위치 지정 | O |
사용 예시
$ bosh reset-release ~/Download/jenkins
기본 Syntax
$ bosh blobs
설명
릴리즈 Blobstore에 등록 한 blob 출력
사용 예시
$ cd release-dir$ bosh blobsPath Size Blobstore ID Digestgolang/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 blobsSucceeded
기본 Syntax
$ bosh add-blob [src-path] [dst-path]
설명
릴리즈 Blobstore에 로컬 blob 추가
파라미터
파라미터 명 | 설명 | 필수**(O/X)** |
src-path | 로컬 Blob 디렉토리 | O |
dst-path | 릴리즈 내 blob 디렉토리 | X |
사용 예시
$ cd release-dir$ bosh add-blob ~/Downloads/stress-1.0.4.tar.gz stress/stress-1.0.4.tar.gz
기본 Syntax
$ bosh remove-blob [blob-path]
설명
릴리즈 Blobstore에 존재 하는 Blob 삭제
파라미터
파라미터 명 | 설명 | 필수**(O/X)** |
blob-path | 릴리즈 내 blob 디렉토리 | O |
사용 예시
$ cd release-dir$ bosh remove-blob stress/stress-1.0.4.tar.gz
기본 Syntax
$ bosh sync-blobs
설명
릴리즈 내 blobstore의 blob 동기화
사용 예시
$ cd release-dir$ bosh sync-blobs
기본 Syntax
$ bosh -e [my-env] releases (Alias: rs)
설명
업로드 한 릴리즈 조회
파라미터
파라미터 명 | 설명 | 필수**(O/X)** |
my-env | 지정 한 Director 환경 이름 명칭 | O |
사용 예시
$ bosh -e my-env rsUsing environment '192.168.56.6' as client 'admin'Name Version Commit Hashcapi 1.21.0* 716aa812cf-mysql 34* e0508b5cf-smoke-tests 11* a6dad6ecflinuxfs2-rootfs 1.52.0* 4827ef51+consul 155* 22515a98+diego 1.8.1* 0cca668edns 3* 57e27daetcd 94* 57c81e16garden-runc 1.2.0* 2b3dedc5loggregator 78* 773a3banats 15* d4dfc4c1+routing 0.145.0* dfb44c41+statsd-injector 1.0.20* 552926dsyslog 9 ac2172fuaa 25* 86ec7568(*) Currently deployed(+) Uncommitted changes15 releasesSucceeded
기본 Syntax
$ bosh -e [my-env] upload-release [location] [--version=ver] [--sha1=digest] [--fix] (Alias: ur)
설명
릴리즈 업로드
파라미터
파라미터 명 | 설명 | 필수**(O/X)** |
my-env | 지정 한 Director 환경 이름 명칭 | O |
location | 릴리즈 파일 위치 및 URL 지정 | O |
--sha1 | 릴리즈 파일 sha1um 값 확인 | X |
--fix | 이전에 업로드 한 릴리즈를 동일한 이름과 버전으로 교체 | X |
사용 예시
$ 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
기본 Syntax
$ bosh -e [my-env] delete-release [name]/[version]
설명
업로드 한 릴리즈 삭제
파라미터
파라미터 명 | 설명 | 필수**(O/X)** |
my-env | 지정 한 Director 환경 이름 명칭 | O |
name | 삭제 할 릴리즈 명 | O |
version | 삭제 할 릴리즈 버전 | O |
사용 예시
$ bosh -e my-env delete-release cf-smoke-tests/94
기본 Syntax
$ bosh -e [my-env] -d my-dep export-release [name]/[version] [os]/[version] [--dir=dir]
설명
특정 스템셀에 대한 릴리즈를 컴파일 하고 내보낸다
파라미터
파라미터 명 | 설명 | 필수**(O/X)** |
my-env | 지정 한 Director 환경 이름 명칭 | O |
name | 릴리즈 명 | O |
version | 릴리즈 버전 | O |
os | 스템셀 os 명 | O |
version | 스템셀 os 버전 | O |
dir | 내보내기 디렉토리 | X |
사용 예시
$ bosh -e my-env -d my-dep export-release cf-smoke-tests/94 ubuntu-trusty/3369
기본 Syntax
$ bosh -e [my-env] inspect-release [name]/[version]
설명
모든 Job, Job의 메타데이터 패키지 및 릴리즈 버전과 관련 된 패키지를 출력
파라미터
파라미터 명 | 설명 | 필수**(O/X)** |
my-env | 지정 한 Director 환경 이름 명칭 | O |
name | 릴리즈 명 | O |
version | 릴리즈 버전 | O |
사용 예시
$ bosh -e gcp-test inspect-release consul/155Using environment '192.168.56.6' as client 'admin'Job Blobstore ID Digest Links Consumed Links Providedacceptance-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: consultype: consul type: consuloptional: trueconsul_agent_windows/a0b91cb0aa1029734d77fcf064dafdb67f14ada6 3a8755d0-7a39-... 17f07ec0... - name: consul - name: consultype: consul type: consuloptional: truefake-dns-server/a1ea5f64de0860512470ace7ce2376aa9470f9b1 5bb53f17-eba9-... 0565f9af... - -6 jobsPackage Compiled for Blobstore ID Digestacceptance-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 packagesSucceeded
기본 Syntax
$ bosh -e [my-env] configs [--type=my-type] [--name=my-name]
설명
Director의 모든 구성을 출력
파라미터
파라미터 명 | 설명 | 필수**(O/X)** |
my-env | 지정 한 Director 환경 이름 명칭 | O |
--name | config 명 기본 Default | X |
--type | config type 명 | X |
사용 예시
$ bosh -e my-env configsUsing environment '192.168.50.6' as client 'admin'Type Namecloud default~ custom-vm-typescpi defaultruntime default3 configsSucceeded
기본 Syntax
$ bosh -e [my-env] update-config [my-type] [config.yml] [--name=my-name]
설명
Director에서 구성을 추가하거나 업데이트
파라미터
파라미터 명 | 설명 | 필수**(O/X)** |
my-env | 지정 한 Director 환경 이름 명칭 | O |
my-typ | config type 명 | O |
config.yml | config type의 property Manifest 파일 | O |
--name | config 명 기본 Default | X |
사용 예시
$ bosh -e my-env config my-type config.yml
기본 Syntax
$ bosh -e [my-env] delete-config [my-type] [--name=my-name]
설명
Director의 my-type 구성을 삭제
파라미터
파라미터 명 | 설명 | 필수**(O/X)** |
my-env | 지정 한 Director 환경 이름 명칭 | O |
my-type | config type 명 | O |
--name | config 명 기본 Default | X |
사용 예시
$ bosh -e my-env config my-type config.yml
기본 Syntax
$ bosh -e [my-env] cloud-config (Alias: cc)
설명
Deployment Property 설정
파라미터
파라미터 명 | 설명 | 필수**(O/X)** |
my-env | 지정 한 Director 환경 이름 명칭 | O |
사용 예시
$ bosh -e my-env cloud-config
기본 Syntax
$ bosh -e [my-env] update-cloud-config [config.yml] [-v ...] [-o ...] (Alias: ucc)
설명
Director의 cloud-conifg 구성 요소를 추가 하거나 수정
파라미터
파라미터 명 | 설명 | 필수**(O/X)** |
my-env | 지정 한 Director 환경 이름 명칭 | O |
config.yml | property Manifest 파일 | O |
-v | Manifest Replace 변수 ex) internal_ip, deployment_name | X |
-o | option Manifest File ex) jumpbox-user.yml, uaa.yml… | X |
사용 예시
$ bosh -e my-env ucc cc.yml
기본 Syntax
$ bosh -e my-env runtime-config (Alias: rc)
설명
Director의 runtime-conifg 구성 요소를 출력
파라미터
파라미터 명 | 설명 | 필수**(O/X)** |
my-env | 지정 한 Director 환경 이름 명칭 | O |
사용 예시
$ bosh -e my-env runtime-config
기본 Syntax
$ bosh -e my-env update-runtime-config [config.yml] [-v ...] [-o ...] (Alias: urc)
설명
Director의 cloud-conifg 구성 요소를 추가 하거나 수정
파라미터
파라미터 명 | 설명 | 필수**(O/X)** |
my-env | 지정 한 Director 환경 이름 명칭 | O |
config.yml | property Manifest 파일 | O |
-v | Manifest Replace 변수 ex) internal_ip, deployment_name | X |
-o | option Manifest File ex) jumpbox-user.yml, uaa.yml… | X |
사용 예시
$ bosh -e my-env urc runtime.yml
기본 Syntax
$ bosh -e my-env cpi-config
설명
Director의 cpi-conifg 구성 요소를 출력
파라미터
파라미터 명 | 설명 | 필수**(O/X)** |
my-env | 지정 한 Director 환경 이름 명칭 | O |
사용 예시
$ bosh -e my-env cpi-config
기본 Syntax
$ bosh -e my-env update-cpi-config config.yml [-v ...] [-o ...]
설명
Director의 cpi-conifg 구성 요소를 추가 하거나 수정
파라미터
파라미터 명 | 설명 | 필수**(O/X)** |
my-env | 지정 한 Director 환경 이름 명칭 | O |
config.yml | property Manifest 파일 | O |
-v | Manifest Replace 변수 ex) internal_ip, deployment_name | X |
-o | option Manifest File ex) jumpbox-user.yml, uaa.yml… | X |
사용 예시
$ bosh -e my-env update-cpi-config runtime.yml
기본 Syntax
$ bosh -e [my-env] deployments (Alias: ds)
설명
디렉터가 설치 한 전체 배포 목록을 출력.
파라미터
파라미터 명 | 설명 | 필수**(O/X)** |
my-env | 지정 한 Director 환경 이름 명칭 | O |
파라미터
$ bosh -e my-env dsUsing environment '192.168.56.6' as client 'admin'Name Release(s) Stemcell(s) Team(s) Cloud Configcf binary-buildpack/1.0.9 bosh-warden-boshlite-ubuntu-trusty-go_agent/3363.9 - latestcapi/1.21.0cf-mysql/34cf-smoke-tests/11cflinuxfs2-rootfs/1.52.0consul/155diego/1.8.1etcd/94garden-runc/1.2.0loggregator/78nats/15routing/0.145.0statsd-injector/1.0.20uaa/25service-instance_0d4140a0-42b7-... mysql/0.6.0 bosh-warden-boshlite-ubuntu-trusty-go_agent/3363.9 - latest2 deploymentsSucceeded
기본 Syntax
$ bosh -e [my-env] -d [my-dep] deployment
설명
디렉터가 지정한 이름의 배포 목록 조회
파라미터
파라미터 명 | 설명 | 필수**(O/X)** |
my-env | 지정 한 Director 환경 이름 명칭 | O |
my-dep | 배포 명 지정 | O |
사용 예시
$ bosh -e vbox -d cf depUsing environment '192.168.56.6' as client 'admin'Name Release(s) Stemcell(s) Team(s) Cloud Configcf binary-buildpack/1.0.9 bosh-warden-boshlite-ubuntu-trusty-go_agent/3363.9 - latestcapi/1.21.0cf-mysql/34cf-smoke-tests/11uaa/25dns/3...1 deploymentsSucceeded
기본 Syntax
$ bosh -e [my-env] -d [my-dep] deploy [manifest.yml] [-v ...] [-o ...]
설명
디렉터가 지정 한 배포명의 Manifest 파일를 통한 VM 설치
파라미터
파라미터 명 | 설명 | 필수**(O/X)** |
my-env | 지정 한 Director 환경 이름 명칭 | O |
my-dep | 배포 명 | O |
-v | Manifest Replace 변수 ex) internal_ip, deployment_name | X |
-o | option Manifest File ex) jumpbox-user.yml, uaa.yml… | X |
manifest.yml | 배포 Manifest 파일 | O |
사용 예시
$ bosh -e vbox -d cf deploy cf.yml -v system_domain=sys.example.com -o large-footprint.yml
기본 Syntax
$ bosh -e [my-env] -d [my-dep] delete-deployment [--force] (Alias: deld)
설명
디렉터가 지정 한 배포명의 VM을 삭제 한다.
파라미터
파라미터 명 | 설명 | 필수**(O/X)** |
my-env | 지정 한 Director 환경 이름 명칭 | O |
my-dep | 배포 명 | O |
--force | 다양한 오류 (IaaS, blobstore, database)를 무시 지정 | X |
사용 예시
$ bosh -e vbox -d cf deld
기본 Syntax
$ bosh -e [my-env] -d [my-dep] manifest (Alias: man)
설명
디렉터가 지정 한 배포명의 Manifest 파일을 출력 한다.
파라미터
파라미터 명 | 설명 | 필수**(O/X)** |
my-env | 지정 한 Director 환경 이름 명칭 | O |
my-dep | 배포 명 | O |
사용 예시
$ bosh -e vbox -d cf man > /tmp/manifest.yml
기본 Syntax
$ bosh -e [my-env] -d [my-dep] recreate [group[/instance-id]] [--skip-drain] [--fix] [--canaries=] [--max-in-flight=] [--dry-run]
설명
디렉터가 지정한 배포의 인스턴스에 대한 VM을 재생성 한다.
파라미터
파라미터 명 | 설명 | 필수**(O/X)** |
my-env | 지정 한 Director 환경 이름 명칭 | O |
my-dep | 배포 명 지정 | O |
group[/instance-id] | 그룹 또는 그룹과 인스턴스 아이디 | X |
--fix | 응답 하지 않는 VM을 대체 | X |
--skip-drain | drain scripts를 건너 뛴다. | X |
--canaries= | 배포 명 지정 | X |
--max-in-flight= | Manifest의 max-in-flight 값을 덮어 쓴다. | X |
--dry-run | 배포를 변경 하지 않고 작업을 실행 한다. | X |
사용 예시
$ 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%
기본 Syntax
$ bosh -e [my-env] -d [my-dep] restart [group[/instance-id]] [--skip-drain] [--canaries=] [--max-in-flight=]
설명
디렉터가 지정한 배포의 인스턴스에 대한 VM을 재시작 한다.
파라미터
파라미터 명 | 설명 | 필수**(O/X)** |
my-env | 지정 한 Director 환경 이름 명칭 | O |
my-dep | 배포 명 지정 | O |
group[/instance-id] | 그룹 또는 그룹과 인스턴스 아이디 | X |
--skip-drain | drain scripts를 건너 뛴다. | X |
--canaries= | 배포 명 지정 | X |
--max-in-flight= | Manifest의 max-in-flight 값을 덮어 쓴다. | X |
사용 예시
$ bosh -e my-env -d my-dep restart
기본 Syntax
$ bosh -e [my-env] -d [my-dep] start [group[/instance-id]] [--canaries=] [--max-in-flight=]
설명
디렉터가 지정한 배포의 인스턴스에 대한 VM을 시작 한다.
파라미터
파라미터 명 | 설명 | 필수**(O/X)** |
my-env | 지정 한 Director 환경 이름 명칭 | O |
my-dep | 배포 명 지정 | O |
group[/instance-id] | 그룹 또는 그룹과 인스턴스 아이디 | X |
--canaries= | 배포 명 지정 | X |
--max-in-flight= | Manifest의 max-in-flight 값을 덮어 쓴다. | X |
사용 예시
$ bosh -e my-env -d my-dep start
기본 Syntax
$ bosh -e [my-env] -d [my-dep] stop [group[/instance-id]] [--skip-drain] [--canaries=] [--max-in-flight=]
설명
디렉터가 지정한 배포의 인스턴스에 대한 VM을 시작 한다.
파라미터
파라미터 명 | 설명 | 필수**(O/X)** |
my-env | 지정 한 Director 환경 이름 명칭 | O |
my-dep | 배포 명 지정 | O |
group[/instance-id] | 그룹 또는 그룹과 인스턴스 아이디 | X |
--canaries= | 배포 명 지정 | X |
--max-in-flight= | Manifest의 max-in-flight 값을 덮어 쓴다. | X |
--skip-drain | drain scripts를 건너 뛴다. | X |
hard | 강제로 VM 삭제, 영구 디스크는 유지 | X |
사용 예시
$ bosh -e my-env -d my-dep stop
기본 Syntax
$ bosh -e [my-env] -d [my-dep] ignore group/instance-id
설명
bosh deploy와 같은 다른 명령의 영향을 받지 않도록 인스턴스를 무시
파라미터
파라미터 명 | 설명 | 필수**(O/X)** |
my-env | 지정 한 Director 환경 이름 명칭 | O |
my-dep | 배포 명 지정 | O |
group[/instance-id] | 그룹 또는 그룹과 인스턴스 아이디 | X |
사용 예시
$ bosh -e my-env -d my-dep ignore cell
기본 Syntax
$ bosh -e [my-env] -d [my-dep] unignore group/instance-id
설명
bosh deploy와 같은 다른 명령의 영향을받지 않도록 인스턴스를 무시하지 않는다
파라미터
파라미터 명 | 설명 | 필수**(O/X)** |
my-env | 지정 한 Director 환경 이름 명칭 | O |
my-dep | 배포 명 지정 | O |
group[/instance-id] | 그룹 또는 그룹과 인스턴스 아이디 | X |
사용 예시
$ bosh -e my-env -d my-dep unignore cell
기본 Syntax
$ bosh -e [my-env] -d [my-dep] logs [group[/instance-id]] [--follow] [--num] [--gw-*] [--quiet]
설명
하나 이상의 인스턴스에서 로그를 다운로드
파라미터
파라미터 명 | 설명 | 필수**(O/X)** |
my-env | 지정 한 Director 환경 이름 명칭 | O |
my-dep | 배포 명 지정 | O |
group[/instance-id] | 그룹 또는 그룹과 인스턴스 아이디 | X |
--dir | 로그의 디렉토리 지정 | X |
--job | 특정 Job의 로그 설정 | X |
--only | 로그 필터링 | X |
--agent | bosh agent 로그만 포함 | X |
--follow | Additional flags for following logs via SSH 로그를 실행 | X |
--num | Additional flags for following logs via SSH 마지막 행 수를 출력 | X |
--gw | Additional flags for following logs via SSH ssh 게이트웨이 구성 | X |
--quiet | Additional flags for following logs via SSH 헤더 출력 생략 | X |
사용 예시
$ 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
기본 Syntax
$ bosh -e [my-env] -d [my-dep] vms [--vitals]
설명
Director 가 관리하는 또는 deployment 의 모든 vm 조회
파라미터
파라미터 명 | 설명 | 필수**(O/X)** |
my-env | 지정 한 Director 환경 이름 명칭 | O |
my-dep | 배포 명 지정 | O |
--vitals | RAM CPU disk 와 같은 vm의 기본 정보 조회 | X |
사용 예시
$ bosh -e vbox vms$ bosh -e vbox -d cf vms$ bosh -e vbox -d cf vms --vitals
기본 Syntax
$ bosh -e [my-env] -d [my-dep] delete-vm [cid]
설명
인스턴스의 Lifecycle을 거치지 않고 VM을 삭제
파라미터
파라미터 명 | 설명 | 필수**(O/X)** |
my-env | 지정 한 Director 환경 이름 명칭 | O |
my-dep | 배포 명 지정 | O |
cid | 인스턴스 아이디 지정 | X |
사용 예시
$ bosh -e vbox -d cf delete-vm i-fs384238fjwjf8
기본 Syntax
$ bosh -e [my-env] -d [my-dep] disks [--orphaned]
설명
Director가 관리하는 또는 deployment의 모든 disk 조회
파라미터
파라미터 명 | 설명 | 필수**(O/X)** |
my-env | 지정 한 Director 환경 이름 명칭 | O |
my-dep | 배포 명 지정 | O |
--orphaned | 사용하지 않는 DISK를 나열 | X |
사용 예시
$ bosh -e vnps -d cf disks
기본 Syntax
$ bosh -e [my-env] -d [my-dep] attach-disk [group/instance-id] disk-cid
설명
인스턴스에 disk attach. 만약 attach된 disk 가 있다면 가장 최근 attach 된 disk를 replace한다.
파라미터
파라미터 명 | 설명 | 필수**(O/X)** |
my-env | 지정 한 Director 환경 이름 명칭 | O |
my-dep | 배포 명 지정 | O |
--orphaned | 사용하지 않는 DISK를 나열 | X |
group/instance-id | 그룹 또는 그룹과 인스턴스 아이디 | X |
사용 예시
$ bosh -e vbox -d cf attach-disk postgres/209c42e5-3c1a-432a-8445-ab8d7c9f69b0 vol-shw8f293f2f2
기본 Syntax
$ bosh -e [my-env] -d [my-dep] delete-disk [cid]
설명
사용하지 않는 disk 삭제
파라미터
파라미터 명 | 설명 | 필수**(O/X)** |
my-env | 지정 한 Director 환경 이름 명칭 | O |
my-dep | 배포 명 지정 | O |
--cid | 삭제 할 DISK 아이디 지정 | X |
사용 예시
$ bosh -e vbox -d cf delete-disk vol-shw8f293f2f2
기본 Syntax
$ bosh -e [my-env] -d [my-dep] ssh [destination] [-r] [-c=cmd] [--opts=opts] [--gw-* ...]
설명
인스턴스 한개 또는 여러 개에 SSH설정
파라미터
파라미터 명 | 설명 | 필수**(O/X)** |
my-env | 지정 한 Director 환경 이름 명칭 | O |
my-dep | 배포 명 지정 | O |
-c | 커맨드 라인 설정 | X |
destination | SSH 목적지 지정 그룹 또는 그룹과 인스턴스 아이디 | X |
--opts | ssh에 옵션을 전달 ex) 포트 포워딩 | X |
--gw-* | SSH 게이트웨이를 구성 | X |
-r, --recursive | directory의 반복 복사 허용 | X |
사용 예시
# 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'
기본 Syntax
$ bosh -e [my-env] -d [my-dep] scp src/dst:[file] src/dst:[file] [-r] [--gw-* ...]
설명
인스턴스로 또는 인스턴스로 부터 SCP (to/from)설정
파라미터
파라미터 명 | 설명 | 필수**(O/X)** |
my-env | 지정 한 Director 환경 이름 명칭 | O |
my-dep | 배포 명 지정 | O |
src/dst: | 복사 받을 script.sh file 경로 | O |
src/dst: | 복사 될 script.sh file 경로 | O |
-r, --recursive | directory의 반복 복사 허용 | X |
--gw-* | SCP gateway설정 | X |
사용 예시
# 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))
기본 Syntax
$ bosh -e [my-env] -d [my-dep] errands (Alias:es)
설명
deployment로 정의 된 모든 errand 목록 조회
파라미터
파라미터 명 | 설명 | 필수**(O/X)** |
my-env | 지정 한 Director 환경 이름 명칭 | O |
my-dep | 배포 명 지정 | O |
사용 예시
$ bosh -e vbox -d cf esUsing environment '192.168.56.6' as '?'Using deployment 'cf'Namesmoke-tests1 errandsSucceeded
기본 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 단위로 실행
파라미터
파라미터 명 | 설명 | 필수**(O/X)** |
my-env | 지정 한 Director 환경 이름 명칭 | O |
my-dep | 배포 명 지정 | O |
name | 실행 할 errand 이름 | O |
--keep-alive | errand가 실행 되는 곳에서 VM 유지 | X |
--when-changed | errand가 skip 설정: 이전에 이미 실행하였고 (성공적으로 마침) errand job 설정값이 바뀌지 않았을 경우 | X |
--download-logs | errand log를 통채로 --logs-dir에 명시된 경로에 저장 | X |
--logs-dir= | errand log를 저장 할 파일 경로 | X |
instance=<instance-group/instance-id> (v2.0.31+) | errand를 실행하기위해 어떤 인스턴스를 사용할지 결정 | X |
사용 예시
$ 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
기본 Syntax
$ bosh -e [my-env] tasks [--recent[=num]] [--all] (Alias: ts)
설명
활성 및 이전에 실행 한 작업에 대한 task를 출력
파라미터
파라미터 명 | 설명 | 필수**(O/X)** |
my-env | 지정 한 Director 환경 이름 명칭 | O |
--recent | 최근 순 4개 task 조회 | X |
num | 최근 순 조회하고 싶은 task 숫자 | X |
--all | active tasks 모두 조회 | X |
-d, -deployment | deployment 단위로 필터링 해서 조회 | X |
사용 예시
# currently active tasks$ bosh -e vbox ts# currently active tasks for my-dep deployment$ bosh -e vbox -d my-dep tsUsing environment '192.168.56.6' as '?'# State Started At Last Activity At User Deployment Description Result27 done Thu Feb 16 19:16:15 UTC 2017 Thu Feb 16 19:20:33 UTC 2017 admin cockroachdb create deployment /deployments/cockroachdb26 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 tasksSucceeded# show last 30 tasks$ bosh -e vbox ts -r --all# show last 1000 tasks$ bosh -e vbox ts -r=1000
기본 Syntax
$ bosh -e [my-env] task [id] [--debug] [--result] [--event] [--cpi] (Alias: t)
설명
task 아이디를 기준으로 상세 조회.
파라미터
파라미터 명 | 설명 | 필수**(O/X)** |
my-env | 지정 한 Director 환경 이름 명칭 | O |
id | task 아이디 | O |
--debug | Debug 로그 출력 | X |
--result | Result 로그 출력 | X |
--event | Event 로그 출력 | X |
--cpi | CPI 로그 출력 | X |
사용 예시
$ bosh -e vbox t 281$ bosh -e vbox t 281 --debug
기본 Syntax
$ bosh -e [my-env] cancel-task [id] (Alias: ct)
설명
task 취소. 다음 checkpoint 에서 task를 취소 한다. task가 취소될 때까지 대기하지 않는다
파라미터
파라미터 명 | 설명 | 필수**(O/X)** |
my-env | 지정 한 Director 환경 이름 명칭 | O |
id | task 아이디 | O |
기본 Syntax
$ bosh -e [my-env] -d [my-dep] snapshots
설명
deployment의 스냅샷 목록을 출력 한다.
파라미터
파라미터 명 | 설명 | 필수**(O/X)** |
my-env | 지정 한 Director 환경 이름 명칭 | O |
my-dep | 배포 명 지정 | O |
사용 예시
$ bosh -e my-env -d my-dep snapshots
기