2017-05-22 50 views
0

我有一種情況,那就是我的bento/ubuntu-14.04映像對於某些集成測試來說太小了。因此,我想增加它的大小,我已經找到了如何在https://stackoverflow.com/a/27878224/53897使用Vagrant:將額外的diskimage與虛擬機的其餘部分放在一起

config.vm.provider "virtualbox" do |v| 
    v.memory = 8192 
    v.cpus = 2 # or more for heavy load 
    # https://stackoverflow.com/a/27878224/53897 
    v.customize ["createhd", "--filename", "m4_disk0", "--size", "1048576"] # 1 TB 
    v.customize ["storageattach", :id, "--storagectl", "SATA Controller", "--port", "1", "--type", "hdd", "--medium", "m4_disk0.vdi"] 
    end 

,然後後來與

# First add the extra disk and extend the root volume. 
# 
# Adapted from https://www.rootusers.com/how-to-increase-the-size-of-a-linux-lvm-by-adding-a-new-disk/ 

fdisk /dev/sdb << EOF 
n 
p 
1 


t 
8e 
w 
EOF 

pvcreate /dev/sdb1 
vgextend vagrant-vg /dev/sdb1 
lvextend -r /dev/vagrant-vg/root /dev/sdb1 

# --- 

加入這看起來非常漂亮,工作做到這一點,並加以清洗在做「流浪摧毀」時要適當。 (我們不重新啓動流浪者實例,只需手動暫停)。

現在我有一個問題,在我的Vagrantfile旁邊創建了「m4_disk0.vdi」文件,而不是其他的VirtualBox文件,這很不方便,因爲我的源位於快速但小型的SSD和VirtualBox文件位於較大但速度較慢的硬盤上。

有沒有一種可靠的方法來問Vagrant在哪裏VirtualBox把實例,所以我可以用它來創建一個合適的文件名呢?

我的主機運行的是Vagrant 1.9.1附帶的Ubuntu 17.04。

回答

2

流浪漢運行在同一文件夾作爲Vagrantfile的命令,以便創建文件有,如果你想顯示另一個目錄更改

v.customize ["createhd", "--filename", "/path/to/file/m4_disk0.vdi", "--size", "1048576"] # 1 TB 
v.customize ["storageattach", :id, "--storagectl", "SATA Controller", "--port", "1", "--type", "hdd", "--medium", "/path/to/file/m4_disk0.vdi"] 

這些都是代表流浪者的VirtualBox的運行的命令,所以關於文件的位置信息將被保存在文件VBOX

獲取當前配置的位置

流浪漢將存儲虛擬機的ID在一個文件.vagrant/machines/default/virtualbox/id下(如果你改變了你的名字VM在流浪者的默認文件夾可能會發生變化)

爲Vagrantfile是一個Ruby腳本,你可以運行你的Ruby命令,像這樣

id = File.read(".vagrant/machines/default/virtualbox/id") 
location = `vboxmanage showvminfo #{id} -machinereadable | grep CfgFile`.chomp().scan(/"(.*)"/).first().first() 

位置將保持初始VBOX文件的位置,所以你仍然需要剝離此名稱以獲取文件夾位置,然後在創建新硬盤時可以指示該文件夾。

我不是紅寶石大師所以有可能是更好的方式來寫這一切(可能使用正則表達式查找到最後/什麼的所有元素,但主要的無業遊民的想法是這樣的)

+0

你誤解。我不想硬編碼的路徑,但明確地詢問流浪者他們在哪裏,然後構建旁邊的路徑。 –

+1

所以你想看看'vboxmanage showvminfo --machinereadable | grep CfgFile'並把文件放在這個文件夾中? –

+0

基本上是的。我可以向Vagrant詢問我的虛擬身份證嗎? –

相關問題