바삭 바삭한 시작 Vagrant

5432 단어 Vagrant
일단 Vagrant에서 바삭 바삭한 VM을 시작하는 데 필요한 단계 요약.

필요한 것


  • VirtualBox
  • Vagrant

  • 설치에 특히 어려운 일은 없다고 생각하므로 생략.
    인스톨러 포치포치.

    큰 파일을 다른 저장소에 넣고 싶은 사람은



    SSD+HDD 구성한 머신에서는 큰 파일을 HDD로 옮기고 싶은 사람이 대부분이라고 생각하기 때문에, 이하의 설정을 넣어 둔다.

    VirtualBox의 기본 가상 머신 폴더 이동



    파일 -> 환경 설정 -> 일반 -> 기본 가상 시스템 폴더의 경로를 변경합니다.

    환경 변수 VAGRANT_HOME 설정


    VAGRANT_HOME 로 설정한 경로에 다운로드한 박스가 저장된다.

    시작할 VM 이미지 찾기



    여기에서 시작하고 싶은 OS의 box를 찾는다.
    Vagrant Cloud
    이번에는 CentOS 7의 box를 기동해 본다.


    Vagrantfile 생성




    box의 페이지를 보면 「How to use this box with Vagrant:」의 「New」곳에 VM 기동까지의 커멘드가 실려 있으므로, 일단 vagrant init centos/7 의 부분만 실행해, Vagrantfile 를 생성한다.
    명령 프롬프트와 터미널에서 적절한 디렉토리를 만들고 해당 디렉토리에서 vagrant init <box名>를 실행하십시오.
    >vagrant init centos/7
    ==> vagrant: A new version of Vagrant is available: 2.2.0!
    ==> vagrant: To upgrade visit: https://www.vagrantup.com/downloads.html
    
    A `Vagrantfile` has been placed in this directory. You are now
    ready to `vagrant up` your first virtual environment! Please read
    the comments in the Vagrantfile as well as documentation on
    `vagrantup.com` for more information on using Vagrant.
    

    이제 현재 디렉토리에 Vagrantfile이 생성됩니다.

    Vagrantfile 편집



    최저한 호스트의 스펙에 맞추어 VM에 할당하는 자원의 조정 정도는 하고 싶기 때문에, 생성된 Vagrantfile의 이하의 부분의 코멘트 아웃을 제외해, CPU 코어수, 메모리의 할당을 지정한다.
      config.vm.provider "virtualbox" do |vb|
        # Display the VirtualBox GUI when booting the machine
        vb.gui = false # true → falseに
    
        # Customize the amount of memory on the VM:
        vb.memory = "1024" # 割り当てたいメモリサイズ(MB)の指定
        vb.cpus = "2"      # 割り当てたいCPUコア数の指定
      end
    

    VM 부팅



    여기까지 설정할 수 있으면, 나머지는 Vagrantfile을 설치하고 있는 디렉토리내에서 vagrant up 를 실행하면(자), 처음에는 box가 다운로드되어 VM가 기동한다.
    >vagrant up
    Bringing machine 'default' up with 'virtualbox' provider...
    ==> default: Box 'centos/7' could not be found. Attempting to find and install...
    
    (略)
    
    ==> default: Machine booted and ready!
    ==> default: Checking for guest additions in VM...
        default: No guest additions were detected on the base box for this VM! Guest
        default: additions are required for forwarded ports, shared folders, host only
        default: networking, and more. If SSH fails on this machine, please install
        default: the guest additions and repackage the box to continue.
    
    (略)
    

    VM 작업



    기동한 것 같기 때문에 조속히 만져 본다. 그대로 같은 디렉토리내에서 vagrant ssh 를 실행.
    >vagrant ssh
    Last login: Sat May  4 02:29:57 2019 from 10.0.2.2
    [vagrant@localhost ~]$ cat /etc/redhat-release
    CentOS Linux release 7.6.1810 (Core)
    

    제대로 움직이고 있다.

    VM 종료



    VM에서 빠져 vagrant halt로 종료합니다.
    >vagrant halt
    ==> default: Attempting graceful shutdown of VM...
    

    VM내에서 shutdown -h now 어쨌든 문제 없었지만, Vagrant적으로 어떨까…

    VM 및 박스 삭제



    불필요하게 되어 지울 경우.

    VM 삭제



    그대로 같은 디렉토리내에서 vagrant destroy 를 실행.
    >vagrant destroy
        default: Are you sure you want to destroy the 'default' VM? [y/N] y
    ==> default: Destroying VM and associated drives...
    

    괴롭힌 VM을 쭉 더 하고 싶은 경우도 vagrant destroy 한 후에 다시 vagrant up 하는 것이 좋을지도.

    박스 삭제



    box도 필요없는 경우는 스스로 지워줄 필요가 있다. 우선 vagrant box list 에서 취득한 box의 확인.
    >vagrant box list
    centos/7        (virtualbox, 1902.01)
    ubuntu/xenial64 (virtualbox, 20181120.0.0)
    

    그리고 삭제. vagrant box remove <box名> 실행.
    >vagrant box remove centos/7
    Removing box 'centos/7' (v1902.01) with provider 'virtualbox'...
    

    확인.
    >vagrant box list
    ubuntu/xenial64 (virtualbox, 20181120.0.0)
    

    제대로 사라진 것 같다.

    일단 이것만 기억해 두면, 조금 사용하는 정도라면 곤란하지 않을 것. 웹 서버 올려 호스트에서 액세스하거나 Docker를 사용하면 네트워크 설정을 괴롭힐 필요가 있지만, 그것은 또 별도로 정리할까 ...

    좋은 웹페이지 즐겨찾기