베그란트에서 윌노엔 항구로 향하고 있습니다.

6814 단어 Vagrant

목표


스마트폰 단말기에서 Mac OS X의 Vagrant(Virtualbox)에서 실행되는 CentOS는 HTTP/HTTPShttp://example.comhttps://example.com 등에서 특별한 포트 번호를 지정하지 않고 접근할 수 있다.
이를 위해 루트 권한을 사용하여 Vagrant를 시작하고 호스트의 시작 포트(80443)를 게스트의 동일한 포트로 전달합니다.

단계


키 파일 설정

vagrant up VM을 시작할 때의 동작은 다음과 같습니다.
  • vagrant 명령 중 하나를 실행할 때 생성~/.vagrant.d/insecure_private_key
  • box의authorized_keys에서 사전등록insecure_private_key

  • 실행vagrant up 시 사용insecure_private_key VM에 연결
  • 키 파일의 소유자는 실행 중인 사용자(SSH 사양)
  • 여야 합니다.
    이번에는 파일을 변경하지 않기 위해 키 파일을 vagrant up 생성하여 루트의 홈 디렉터리 vagrant status 로 복사합니다.
    # 鍵を生成
    $ vagrant status
    
    # 鍵を設置
    $ sudo mkdir /var/root/.vagrant.d
    $ sudo cp ~/.vagrant.d/insecure_private_key /var/root/.vagrant.d/insecure_private_key
    $ sudo chown root:wheel /var/root/.vagrant.d/insecure_private_key
    

    가상 머신 시작


    일반과 달리 /var/root 를 사용하여 가상 시스템에 연결하기 때문에 이 설정을 설명하는 /var/root/.vagrant.d/insecure_private_key 아래에서 가상 시스템을 시작합니다.
    Vagrantfile
    # -*- mode: ruby -*-
    # vi: set ft=ruby :
    
    # Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
    VAGRANTFILE_API_VERSION = "2"
    
    Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
      # Box
      config.vm.box = "centos_6.5"
      config.vm.box_url = "http://opscode-vm-bento.s3.amazonaws.com/vagrant/virtualbox/opscode_centos-6.5_chef-provisionerless.box"
    
      # Key
      config.ssh.private_key_path = "/var/root/.vagrant.d/insecure_private_key"
    
      # Network
      config.vm.network "forwarded_port", guest: 80 , host: 80
      config.vm.network "forwarded_port", guest: 443, host: 443
    end
    
    $ sudo vagrant up
    $ sudo vagrant ssh
    

    확인


    가상 시스템에 아파치 등을 설치하고 호스트 OS의 브라우저에 연결http://127.0.0.1하면 index 파일을 열람할 수 있습니다.

    인터넷 공유 활성화

    Vagrantfile, 인터넷 공유를 활성화합니다.
    스마트폰 단말기에서 액세스하려면 IP 주소를 확인하십시오.기본값은 192.168.2.1/24입니다.
    $ ifconfig bridge0
    

    확인


    스마트폰 단말기에서 운영자의 회선을 닫고 인터넷 공유 네트워크에 참여한 상태http://192.168.2.1(위에서 확인한 주소)에서 index 파일에 접근할 수 있다면 인터넷 공유는 성공적이다.

    DNS 서버 구축


    그래도 가상 시스템에 액세스할 수 있지만 호스트 이름으로 액세스하기 위해 Mac OS X는 DNS 서버가 됩니다.
    # インストール
    $ brew install unbound
    
    # バックアップ
    $ cp /usr/local/etc/unbound/unbound.conf /usr/local/etc/unbound/unbound.conf.org
    
    # 上書き
    $ vim /usr/local/etc/unbound/unbound.conf
    $ cat /usr/local/etc/unbound/unbound.conf
    server:
        username: nobody
        interface: 0.0.0.0
        access-control: 192.168.2.0/24 allow 
        local-data: "example.com A 192.168.2.1"
    
    # 起動
    $ sudo unbound -v -d -c /usr/local/etc/unbound/unbound.conf
    

    확인


    스마트폰 단말기 접근unbound에서 인덱스 파일을 열람할 수 있다면 DNS 서버의 설정은 성공적이다.

    지원


    공유 사라짐 정보


    Vagrant1.5에 추가된 http://example.com 를 사용하면 외부에서 액세스할 수 있는 URL이 생성됩니다.
    하지만 개발을 위해 URL을 고정해야 하는 경우 등 대응하지 못하는 경우도 있기 때문에 이 방법도 유용할 것 같은데...

    루트 권한으로 시작 정보


    Vagrant의 Vagrant Share 중에는 추천하지 않으며, 많은 강좌들도 윌노언 항구 이외의 곳에서 전진한다.
    하지만 방법을 먼저 남겨두면 쓸모가 있을 때...
    host (int) - The port on the host that you want to use to access the port on the guest. This must be greater than port 1024 unless Vagrant is running as root (which is not recommended).
    

    DNS 캐시 정보


    DNS 설정이 실패한 상태에서 액세스가 실패하면 스마트폰 단말기에 DNS 캐시가 유지되고 나중에 액세스가 계속 실패할 수 있습니다.
    다음 절차에 따라 DNS 캐시를 제거하고 다시 액세스하십시오.
  • 기내 모드 켜기
  • 기내 모드 끄기
  • 좋은 웹페이지 즐겨찾기