BOSH 명령어는 제가 작성한 내용보다 훨씬 다양하게 존재합니다.
이 문서는 자주 사용했던 명령어 위주로 정리한 것이며, 추후 필요에 따라 명령어를 계속 업데이트할 예정입니다
환경 : Ops Manager Server
사용 명령어 : bosh
bosh가 관리하는 전체 vm목록들을 보여줍니다
추가 Tip
vm들 전체 상태들을 확인할 때 자주 사용합니다
설치된 deployment 목록 출력
추가 Tip
각 deployment별 설치된 release를 파악할 수 있어 설치된 release 버전을 확인할 때 사용합니다
bosh deployments 명령어는 보통 bosh ds로 줄여서 사용하기도 합니다
deployments의 guid를 출력합니다
추가 Tip
저는 이 명령어는 길어서 잘 안치고 bosh ds | grep cf- 이런식으로 검색해서 사용합니다
deployments의 vm 목록(instnace)들을 보여줍니다
추가 Tip
bosh -d [deployment-guid] instances 명령어는 보통 -d [deployment-guid] is로 줄여서 사용하기도 합니다
[옵션]
--details : 상세목록 보여줍니다. instance 몇번인지 확인할 때 주로 씁니다
--vitals : cpu, memory, disk 등 사용량을 보여줍니다
-p : vm들의 상세 process 출력합니다
-f : State Fail인 vm들 출력합니다
deployments의 vm 목록(instnace)들을 보여줍니다
추가 Tip
bosh -d [deployment-guid] instances 비슷하지만 VM CID, VM Type, Stemcell 등 추가적인 정보를 출력합니다.
is와 vms는 취향차이 입니다.
[옵션]
--vitals : cpu, memory, disk 등 사용량을 보여줍니다
vm에 ssh 접속합니다
추가 Tip
VM 내부에서 작업하기 위한 기본 접속 명령어입니다. 접속 후에는 VM의 로그를 확인하거나, 추가적인 프로세스를 실행
하는 등 다양한 작업을 수행할 수 있습니다.
VM에 접속하지 않고 명령을 실행합니다
추가 Tip
bosh -d cf-e8f672b4b76a882b1d78 ssh diego_cell/c64fa9f5-7f0b-466c-be32-3c2c4f1be1c7
-c "sudo touch /tmptest.txt" instance-guid를 넣으면 하나의 diego-cell vm에 명령을 실행하고 사진과 같이
bosh -d cf-e8f672b4b76a882b1d78 ssh diego_cell -c "sudo touch /tmptest.txt" 수행하면 전체 diego-cell
vm에 명령을 실행합니다
vm에 로그를 반출합니다
추가 Tip
bosh -d cf-e8f672b4b76a882b1d78 logs 수행하면 deployment안의 vm(instance)들의 모든 로그가 반출됩니다.
특정 VM의 로그만 반출하기 위해서는 logs뒤에 instance-guid 입력해줍니다
[옵션]
--all-logs : agent, system,job logs 같은 추가 로그들이 같이 반출됩니다, SR 업로드할때 해당 옵션을 넣어서
로그 반출하는게 좋습니다
bosh가 작업하고 있는 내역을 출력합니다
추가 Tip
BOSH가 어떤 작업을 수행했는지 확인할 수 있으며, --recent 옵션을 통해 이전 작업
내역을 조회할 수 있어 VM이 장애(Fail) 발생 시 원인을 추적하는 데 유용합니다
[옵션]
--recent=[숫자] : bosh가 전에 작업한 내역들을 입력한 숫자 열만큼 출력합니다
task 동작을 실시간으로 확인할 수 있습니다
추가 Tip
BOSH가 어떤 작업을 수행하는지 실시간으로 출력합니다 (옵션은 잘 안씁니다)
[옵션]
--event : 작업(task) 수행 중 발생한 이벤트 정보를 출력합니다. 어떤 단계에서 무슨 일이 일어났는지
추적할 때 유용합니다
--cpi : CPI(Cloud Provider Interface) 호출 내역을 출력합니다. IaaS 상에서 어떤 리소스
작업(API 호출 등)이 있었는지 확인할 수 있습니다
--debug : 작업 실행 중 자세한 디버그 로그를 출력합니다. 작업이 잘 진행되지 않거나 무한 루프에 빠진 것처럼
보일 때 원인 파악을 위해 가끔 사용합니다
--result : 작업의 최종 결과 데이터를 출력합니다. 예를 들어 bosh task <task-id> --result로
특정 작업 결과(JSON 등)를 볼 수 있습니다
-a, --all : 완료된 작업뿐만 아니라 현재 진행 중이거나 실패한 모든 작업들을 포함해 전체 작업 목록을 보여줍니다
task를 취소합니다
추가 Tip
현재 실행 중인 Task를 취소할 때 사용합니다. Ops Manager UI에서 진행하는 Apply Changes는
실행 후 중단할 수 없기 때문에, 해당 작업을 강제로 멈추려면 bosh cancel-task 명령어를 사용하는 수밖에 없습니다
오래된 리소스와 마운트 해제된 디스크들을 정리합니다
추가 Tip
생각보다 orphaned-disks 잡아먹는 디스크량이 커서 --all 옵션으로 지우는게 좋습니다
[옵션]
--all : 오래된 리소스와 사용안하는 디스크 전체 지웁니다
--dry-run : 삭제전에 삭제 목록과 비삭제 목록 출력합니다
--keep-orphaned-disks : 사용되지 않는 디스크 삭제 안하고 남겨둡니다
bosh에서 전역 설정(Configuration) 을 관리할 때 사용하는 기능입니다. 이 설정들은 배포수준이 아닌 Director 전체에 적용되는 공통 설정입니다
추가 Tip
config를 통하여 vm들을 custom하게 생성이 가능합니다 예시)보안솔루션 설치, 라우팅 설정, 쉘스크립트 자동화 등
[Type]
Cloud Config : IaaS 관련 인프라 정의 (VM 타입, 디스크 타입, AZ, 네트워크 등) 대부분의 VM들이 참조합니다
Runtime Config : BOSH에서 배포 외의 추가 기능(VM이 생성될 때 추가 동작을 넣어줄 수 있음)에 대한 설정을 정의.
CPI Config : CPI(Cloud Provider Interface)의 세부 설정. BOSH Director가 IaaS API를 호출할 때 사용합니다
config 스크립트를 확인합니다
추가 Tip
config 명령어를 통하여 해당 config의 스크립트 내용을 자세하게 볼 수 있습니다
cpi쪽 config를 보면 vSphere에 설정된 계정과 패스워드를 확인할 수 있습니다
(vSphere 계정 생각안날 때 쓰면 좋음)
VM 상태를 확인합니다 문제가 있는 VM은 선택에 맞춰 복구합니다
추가 Tip
vm들이 상태가 fail 떨어지거나 제대로 구동이 안될 때 사용하는 명령어입니다 사진에는 문제 있는 vm이 없어
선택지 없이 넘어갔지만 문제가 있을 시에는 VM을 삭제했다 재생성할지, restart만 할지 결정하는 선택지가 나옵니다
bosh -d [deployment-guid] cloud-check 명령어는 보통 bosh -d [deployment-guid] cck로 줄여서 사용합니다
VM을 종료합니다
추가 Tip
deployment에 해당된 전체VM을 종료할지, 특정 VM만 종료할지를 선택할 수 있습니다
VM을 기동합니다
추가 Tip
deployment에 해당된 전체VM을 종료할지, 특정 VM만 종료할지를 선택할 수 있습니다
errands 목록을 출력합니다
추가 Tip
errands란? 일반적으로 배포(deployment) 외에 추가 작업을 수행하는 스크립트입니다
deployment별로 수행할 수 있는 errand가 다릅니다
errand를 실행시킵니다
추가 Tip
push-apps-manager errand를 수행하면 appsmanager 컨테이너가 재배포되는데 appsmanager 가 정상이지 않을 때
수행하면 해결됩니다 예) appsmanager 컨테이너 이미지가 제거되어 restart,restage로도 살릴 수 없을때 재배포하여
컨테이너 이미지를 이미지 저장소에 다시 넣어줘야 합니다
bosh 오토힐링 기능을 on/off 합니다
추가 Tip
BOSH는 기본적으로 전체 VM에 대해 Health Check를 수행하며, 문제가 감지되면 해당 VM을 자동으로 재생성하는
기능을 가지고 있습니다 이 명령어는 해당 자동 복구 기능을 켜거나 끌 수 있도록 설정합니다 테스트를 위해 VM을
정지할 경우에도 BOSH가 이를 문제로 인식해 VM을 재생성하므로, 테스트 중에는 이 기능을 꺼두는 것이 좋습니다