Vagrant 가상 환경 지원

4935 단어

개발 환경의 고통


소프트웨어 개발은 개발 환경이 빠질 수 없고 웹 개발은 환경에 대한 의존도가 더욱 크다.웹 개발에서 프런트엔드든 백엔드든 서버와의 통신이 빠질 수 없다.일반적인 상황에서 전단 개발 학생, 특히Restfull 구조가 유행하는 상황에서 전단은 인터페이스와 문서만 필요로 한다.로컬에서 백엔드 서비스를 다시 구축할 필요가 없습니다.현실은 매우 잔혹하다. 인터페이스 디버깅을 위해 전단 개발은 왕왕 현지에서 백엔드 서비스를 구축해야 한다.물론 현지에서 에이전트부터 원격까지 개발 서버를 사용하는 것을 좋아하는 학생도 있다.어쨌든 디버깅할 때 백엔드 서비스가 빠질 수 없다.그 밖에 전단은 백엔드의 환경을 어떻게 구축하는지 거의 모른다.
백엔드에 대한 구축 환경은 비록 앞부분처럼 막연하고 조심스럽지는 않다.그러나 개발된 기계 환경과 생산 배치 환경이 일치하지 않아 왕왕 나타난다
코드가 내 컴퓨터에서 실행되는 데 문제가 없음(But it works on my machine)
왜 push가 서버에 와서 무릎을 꿇었어?그리고 신입이 입사할 때마다 개발 환경을 다시 한 번 배치하는 것도 짜증난다.
일로영일의 개발 환경 해결을 위해 Vagrant 운명에 따라 생겨났다.물론 현재Docker도 비슷한 문제를 해결할 수 있다.

Vagrant 설치

Vagrant는 고급 가상 기기의 다리로 볼 수 있고vagrant를 통해 가상 기기와 파일을 쉽게 공유할 수 있다.호스트의 폴더가 가상 시스템의 파일 시스템에 매핑됩니다.네트워크 포트를 비추고 통신하는 개인 네트워크 등을 설정할 수도 있다.vagrant는 가상 기기에 의존하고 현재 지원하는 가상화 방식이 매우 많다.Virtualbox, VMware, Docker와 함께 작업할 수 있습니다.본고에서 사용한 환경은 MacOS X 10.11, Virtaulebox 5.2.0Vagrant 1.8.0이다.
맥에 vagrant와virtualbox를 설치하는 것은 비교적 간단합니다. 홈페이지 다운로드에 방문하여 dmg 패키지를 설치하면 됩니다.다운로드 주소는 다음과 같습니다.
  • virtulbox
  • vagrant

  • Vagrant box 로드


    박스 미러 다운로드


    Vagrant는 고급 VM 미러링 관리자로 볼 수 있습니다.전체 환경 미러 세트는 Box 라고 합니다.누구나 자신만의 박스를 만들 수 있다.이 박스는 이른바 개발 환경으로 시스템과 관련된 소프트웨어를 포함한다.우리는 0부터 시작했기 때문에, 홈페이지 ubuntu14.04의 거울을 다운로드했다.공식 홈페이지에서 박스 렌즈 다운로드를 제공하는 것 외에 더 많은 렌즈가 이곳에 접근할 수 있다.

    상자 미러 추가


    vagrant는 다른box 렌즈를 추가한 다음 이 렌즈에 따라 가상 환경을 초기화할 수 있습니다.다음 명령을 사용하여 box 추가
    $ vagrant box add ubuntu14 ~/Download/virtualbox.box
    

    ubuntu14는 추가된 상자의 이름입니다. 마음대로 이름을 지정할 수 있습니다.~/Download/virtualbox.box는 이전에 다운로드한 박스 미러입니다.위의 방법은 오프라인으로 추가하는 것입니다. vagrant는 사실 온라인으로 박스를 추가하는 것을 지원합니다. 박스의 경로를 공식적인 박스 이름으로 바꾸기만 하면 됩니다.패키지 관리 방식과 유사하다.

    box 미러 제거


    박스 렌즈를 추가하는 데는 한 번만 걸리면 됩니다. 필요하지 않으면 다음 명령을 사용하여 박스 목록을 보고 박스를 제거할 수 있습니다.
    $ vagrant box list
    ubuntu14 (virtualbox, 0)
    $ vagrant box remove ubuntu14
    

    환경 초기화


    가상 환경 만들기


    vagrant는 서로 다른 박스를 만들고 박스에 따라 환경을 초기화할 수 있습니다.ubuntu14 환경을 만듭니다.
    $ mkdir ~/ubuntu
    $ cd ~/ubuntu
    $ vagrant init ubuntu14
    

    vagtant init에 박스 이름을 추가하면 이 상자를 기반으로 하는 환경을 만들 수 있습니다.init 명령이 실행되면 현재 디렉터리에 Vagrantfile 파일이 생성됩니다.

    가상 머신 시작


    Vagrantfile 파일을 편집하고 공유 폴더 및 개인 네트워크 액세스를 구성합니다.
    # -*- mode: ruby -*-
    # vi: set ft=ruby :
    
    configure
    
    Vagrant.configure(2) do |config|
      ...
    
      #  
      config.vm.network "private_network", ip: "192.168.33.10"
    
      #  vagrant  /vagrant, nfs 。
      config.vm.synced_folder ".", "/vagrant", :nfs => true
    
      ...
    end
    
    

    일부 vagtant의 박스나 호스트는 nfs 공유를 지원하지 않습니다. 다음 패키지를 설치해야 합니다.
    숙주 linunx:
    $ sudo apt-get install nfs-kernel-server nfs-common 
    

    가상 머신:
    $ sudo apt-get install nfs-common
    

    물론 후자 명령의 집행은 반드시 먼저 가상 머신을 시작해야 설치를 실행할 수 있잖아.가상 머신을 실행하는 것은 간단합니다.
    $ vagrant up
    

    가상 머신이 시작되고 한 무더기의 설정 출력이 있으며 중간에 가상 머신의 비밀번호를 설정할 수 있는 권한을 부여해야 한다.mount 공유 폴더를 설정하는 동안 다음과 같은 오류가 발생했습니다.
    Failed to mount folders in Linux guest. This is usually beacuse
    the "vboxsf" file system is not available. Please verify that
    the guest additions are properly installed in the guest and
    can work properly. The command attempted was:
    
    mount -t vboxsf -o uid=`id -u vagrant`,gid=`getent group apache | cut -d: -f3`,dmode=777,fmode=777 /vagrant /vagrant
    mount -t vboxsf -o uid=`id -u vagrant`,gid=`id -g apache`,dmode=777,fmode=777 /vagrant /vagrant
    

    가상 시스템에 설치해야 할 수도 있습니다nfs-common.

    VM 로그인


    vagrant와 숙주 기회는 가상 머신이 시작될 때 ssh 관련 설정을 생성합니다.ssh를 사용하여 VM에 직접 로그인할 수 있습니다.
    $ vagrant ssh
    

    가상 컴퓨터에 로그인하면 방금 설치한 nfs-common을 실행할 수 있습니다.그런 다음 가상 환경을 재부팅하면 됩니다.
    $ vagrant reload
    
    Vagrantfile 파일의 설정을 수정하려면 Reload 가상 환경이 필요합니다.
    여기에 가상 환경을 보는 /vagrant 폴더 아래에도 Vagrantfile 파일이 있습니다.또한 이 폴더에서 만든 파일은 모두 호스트와 가상 환경을 똑같이 하고 두 폴더는 nfs 공유를 실현한다.

    가상 환경 닫기 및 제거


    가상 환경을 사용할 필요가 없을 때 다음 명령을 사용하여 가상 시스템을 닫을 수 있습니다
    $ vagrant halt
    

    종료 후 vagrant up 를 사용하여 가상 머신을 다시 시작할 수 있습니다.이 환경이 필요하지 않을 때 vagrant destroy 를 사용하여 가상 머신을 제거할 수 있습니다.

    가상 시스템에 로그인하여nginx를 설치한 후에 192.168.10.33에 방문하면 숙주 호스트가 가상 환경에 접근하는 것을 볼 수 있다 가상 시스템에 nginx 설치 $ sudo apt-get install nginx 호스트에서 192.168.10.33에 방문하면nginx 처리 요청을 볼 수 있습니다.

    포장하다


    가상 환경을 만들면 이 환경은 생산 환경을 모의하여 웹 응용 프로그램을 배치할 수 있다.그리고 이 환경을 포장해서 새로운 박스가 됩니다.
    $ vagrant package --output new_ubuntu14.box --vagrantfile Vagrantfile
    

    서로 다른 사람에게 나누어 주고 그들도vagrant와virutalbox를 설치하면 차례대로 box를 만들고 생산 환경과 일치하는 개발 환경을 초기화할 수 있다.

    좋은 웹페이지 즐겨찾기