[virtualbox] Vagrant 명령은 정확히 무엇을합니까?

놀랍게도 Vagrant 명령이 수행하는 작업에 대한 문서는 “시작하기”자습서 전체의 참조를 제외하고는 없습니다.

지금까지 내가 해낸 것 :

  • box– ” 상자 ” 관리
  • destroy -VM을 종료 한 다음 저장된 이미지를 삭제 하시겠습니까?
  • gem
  • halt -VM 종료
  • init -새로운 Vagrantfile로 디렉토리 준비
  • package-VM을 종료 한 다음 상자로 바꿀 수있는 ‘패키지’로 변환 하시겠습니까? (또는 뭔가)
  • provision -프로비저닝 (예 : Chef, Puppet …) 단계 만 실행
  • reload -VM 구성 수정 (예 : Vagrantfile 재 적용), VM 재부팅, 재 프로비저닝
  • resume -일시 중지 해제 (즉, 최대 절전 모드 해제)
  • ssh -VM에 대한 SSH 셸 연결 열기
  • ssh-config
  • status
  • suspend -VM 최대 절전 모드
  • up -일부 또는 전체 : VM 이미지를 복사하여 새 VM 생성, 구성 적용, 부팅

이 권리가 있습니까? 나머지는 무엇입니까? reloaddestroy/ 의 정확한 차이점에 대해서는 아직 명확하지 않습니다 up.



답변

나는 vagrantup의 문서 가 더 짧다는 것에 동의합니다 .

일부 정보는 명령 도움말 시스템에서 수집 할 수 있습니다.

  1. 예 : gem명령.

    인수없이 명령 만 입력하면 vagrant gem -h필요한 정보가 생성됩니다.

    vagrant gemRubyGems 시스템을 통해 Vagrant 플러그인을 설치하는 데 사용됩니다. 사실로,vagrant gem 은 실제 gem
    인터페이스 의 프론트 엔드 뿐이며, Vagrant는 gem이 설치된 사용자 정의 디렉토리를 설정하여 시스템 gem과 격리된다는 점이 다릅니다.

  2. Vagrant ssh-config:

    내부적으로 실행하면 vagrant ssh 으로 VM에 ssh를 . 잘 알려진 ssh 키를 활용하고 있습니다. 이 키에 대한 정보는에서 제공합니다 vagrant ssh-config. 이것은 잘 알고있는 키를 자신의 개인 키로 변경하고이를 사용할 상자를 준비하려는 경우에 유용합니다.

    또한 경우에 따라 VM에 ssh 기반 자동화를 사용할 수 있습니다. 이 경우 사용중인 키를 아는 것이 유용합니다. 일반 ssh 명령을 사용할 수 있습니다.ssh -i keyfile ..

  3. vagrant status <vmname>

    이 명령은 vm의 상태에 대한 정보를 제공하는 래퍼입니다. 실행, 저장 및 전원이 꺼질 수 있습니다.

  4. vagrant reload

    적용해야하는 vagrantfile의 구성을 변경하는 경우. VM을 다시로드 할 수 있습니다. 요청하지 않는 한 vagrantfile에 정의 된 프로비저닝을 다시 실행합니다.

    기본 상자에서 생성 한 VM은 파괴되지 않습니다. 즉, 사용자 디렉터리에 폴더를 만든 경우와 같이 VM에 대한 모든 변경 사항이 다시로드 된 후에 그대로 유지됩니다.

    VM의 전원을 끈 다음 VM의 전원이 꺼진 경우에만 적용 할 수있는 특정 구성 변경 사항을 적용하는 재부팅과 같습니다. 그런 다음 전원을 켭니다. 예 : 다른 SATA 가상 디스크를 연결하는 것과 같습니다.

  5. vagrant up

    이것은 구성 파일을 읽습니다. vagrantfile 다음 기본 상자에서 VM을 만듭니다. Base Box는 템플릿과 같습니다. 여기에서 많은 VM을 만들 수 있습니다.

    마찬가지로 vagrant destroyVM을 파괴합니다. 이 경우 내부에서 변경 한 모든 내용이 손실됩니다. 하지만 새 VM을 만들 때 미리 정의 된 기본 상태에서 시작할 수 있다는 멋진 아이디어입니다.

정말하고를 사용하는 것과 같이 한 그것에 대해 블로그 .

요약하면 VirtualBox API 및 Commands보다 좋은 래퍼 입니다. VirtualBox 명령 을 살펴보면 일부 기능을 더 잘 이해할 수 있습니다 .


답변

언제 변경되었는지 확실하지 않지만 현재 버전 (1.6.3)에는 적절한 명령 목록이 있으며 실행 vagrant list-commands하면 훨씬 더 완전한 목록이 제공됩니다.

box             manages boxes: installation, removal, etc.
connect         connect to a remotely shared Vagrant environment
destroy         stops and deletes all traces of the vagrant machine
docker-logs     outputs the logs from the Docker container
docker-run      run a one-off command in the context of a container
global-status   outputs status Vagrant environments for this user
halt            stops the vagrant machine
help            shows the help for a subcommand
init            initializes a new Vagrant environment by creating a Vagrantfile
list-commands   outputs all available Vagrant subcommands, even non-primary ones
login           log in to Vagrant Cloud
package         packages a running vagrant environment into a box
plugin          manages plugins: install, uninstall, update, etc.
provision       provisions the vagrant machine
rdp             connects to machine via RDP
reload          restarts vagrant machine, loads new Vagrantfile configuration
resume          resume a suspended vagrant machine
rsync           syncs rsync synced folders to remote machine
rsync-auto      syncs rsync synced folders automatically when files change
share           share your Vagrant environment with anyone in the world
ssh             connects to machine via SSH
ssh-config      outputs OpenSSH valid configuration to connect to the machine
status          outputs status of the vagrant machine
suspend         suspends the machine
up              starts and provisions the vagrant environment
version         prints current and latest Vagrant version

단독으로 실행할 때 전체 목록에서 제외 된 유일한 명령 vagrant은 docker 및 rsync 명령입니다. 어쨌든 내 시스템에서.

이것이 결정적인 대답 인 것 같습니다.


답변

v1.1의 현재 문서가 더 좋아 보이지만 v1보다 훨씬 덜 완전하다는 것은 정말 안타깝습니다. ‘적은 것이 더 많다’라는 신조는 문서화 영역에서 작동하지 않습니다 …

Vagrantfiles와 관련하여 가장 완전한 개요는 vagrant 프로젝트를 초기화 한 후 새로 생성 된 Vagrantfile의 주석에 있습니다. 현재 문서에없는 매개 변수를 언급합니다.


답변