我目前正在將大量EC2實例轉換爲一系列puppet腳本,然後使用Vagrant虛擬化本地開發的鑽井平臺。如何在流浪者和傀儡之間共享hosts文件
我已經陷入了管理流浪者的網絡並將其映射到生產上。
首先,我有這樣的事情:
# Main Web Server
config.vm.define :app do |app_config|
app_config.vm.host_name = "web1"
app_config.vm.network :hostonly, "10.0.0.2"
app_config.vm.box = "precise64"
...etc
puppet.manifest_file = "persist/web.pp"
end
# First DB server
config.vm.define :db1 do |db1_config|
db1_config.vm.host_name = "db1"
db1_config.vm.network :hostonly, "10.0.0.3"
db1_config.vm.box = "precise64"
...etc
puppet.manifest_file = "persist/db.pp"
end
etc.
在這種情況下web.pp和db.pp
然後是相當簡單的,他們只是建立蟒蛇,uwsgi,nginx的時,MySQL等
所以問題:我需要裏面例如puppet/modules/hosts/files/hosts
必須指定類似:
10.0.0.3 db1.X.com
10.0.0.4 db2.X.com
etc.
在生產中我們使用我們網站的DNS和EC2實例的DNS記錄組合(我不能放入主機)。通常,我們的haproxy主機具有公共DNS記錄,並且它們在其配置中保存EC2名稱(這使得不能使用主機文件)。
那麼,如何可以建立兩個傀儡,流浪漢可以導入和使用全局映射,如文件:
hosts = {
web => 10.0.0.2,
db1 => 10.0.0.3,
db2 => 10.0.0.4,
}
,我可以從例如haproxy.cfg
木偶模板中訪問,但也從內流浪訪問文件,所以我可以設置vm.network
。
限制:
- 不能是IP而已,一定是象徵性的名稱或者IP或者DNS
- 不能用一個木偶大師(不幸的是在這一個不靈活)。
- 將DNS服務器虛擬化似乎也很麻煩,所以id不是。
而且我真的新紅寶石,如果你提供的例子(這將是巨大的),請形容它足以讓我能夠通過紅寶石文檔找到我的路。