我正在嘗試使用流浪漢和廚師客戶端配置爲我正在處理的任務。我希望能夠使用vagrant up
生成的唯一名稱,將實例加入Chef Server,然後在完成時刪除該節點。我有這個主要工作;當我運行Chef Destroy時,我被困在廚師服務器的自動刪除節點上。我需要找到一種緩存名稱並稍後檢索的方法,只需運行vagrant up
的主機名配置,或者我還沒有弄清楚的一些選項。流浪漢:設置主機名一旦在流浪漢
我vagrantfile的一個片段如下:
Vagrant.configure('2') do |config|
config.vm.box = 'centos/6'
config.vm.hostname = "vagrant-#{SecureRandom.hex(2)}-el6.dev.local"
config.vm.provision 'chef_client' do |chef|
chef.chef_server_url = 'https://chef.dev.local/organizations/foo'
chef.add_role 'build_vm'
chef.node_name = config.vm.hostname
chef.delete_node = true
chef.delete_client = true
end
end
當這個運行在vagrant up
主機名設置爲vagrant-229b-el6.dev.local
但破壞它試圖摧毀vagrant-3a1c-el6.dev.local
。很明顯,在每次運行中都會運行config.vm.hostname
,所以合乎邏輯的是不要讓這種情況發生。我需要做什麼才能讓vagrant up
創建的主機名持續存在,以便Chef知道稍後將其刪除?
我想你可以只依賴於流浪者產生的'id'文件時,它會創建虛擬機,這是VirtualBox的/ vmware VM Id,所以你不需要維護另一個文件。 –
我很久沒有和流浪者一起工作過。如果vagrant將主機名本身保存到某個文件中,那麼使用該文件肯定會是更清晰的解決方案。 –
好吧,需要詳細說明 - 不,它不會保存主機名本身,但vagrant維護一個文件與它創建的虛擬機的ID(在.vagrant文件夾下的部分文件),所以我會看到OP是如果這個文件存在,這意味着虛擬機已經設置並且主機名已被設置,則不運行'config.vm.hostname ='vagrant - #{SecureRandom.hex(2)} - el6.dev.local''行 –