2014-04-28 255 views
3

我有一個應用程序運行在VirtualBox虛擬機中,用於測試目的需要連接到主機。虛擬機由Vagrant啓動並由Puppet管理。使用Puppet獲取虛擬機中的主機虛擬機

設置此連接的最佳方式是什麼?例如,在我的主機上,應用程序在端口9200上運行。因此,從我的虛擬機,我想要去myhostmachine:9200

目前我正在考慮使用這樣一個簡單的命令來計算出我的主機IP(與默認路由相同),在一個小命令中加入hostvm作爲條目/etc/hosts

/sbin/ip -4 route list 0/0 | grep -m 1 default | awk '/default/ { print $3 }' 

而讓Puppet每次都運行exec功能。但是,我感覺必須有更好的方式。

客戶機操作系統是Ubuntu 12.04,主機是OS-X。

謝謝!

+0

這個問題是與此相關的,但問題是我不知道10.0.2.2始終可用:http://superuser.com/questions/144453/virtualbox-guest-os -access-local-server-on-host-os – Alex

回答

1

據我所知,目前Vagrant always設置了一個連接到virtualbox的natted接口,所以我認爲你的主機的ip永遠是你提到的10.0.2.2地址。我認爲傀儡主機聲明可能比每次運行該命令更容易管理。

host { 'myhostmachine': 
    ip => '10.0.2.2', 
} 

爲主機的傀儡resource reference擁有所有你可以設置過其他PARAMS。

當時我能夠訪問使用myhostmachine主機:9200

+1

是的,你可能會利用'$ :: ipaddress'事實和/或其他方式來使這更加自動化。 –