Dari mana asal nama 'default' saat meluncurkan kotak gelandangan?
$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
Apakah ada cara untuk mengatur ini?
configuration
vagrant
virtualbox
vagrantfile
Kyle Kelley
sumber
sumber
Jawaban:
Saya menemukan beberapa opsi membingungkan, jadi saya memutuskan untuk menguji semuanya untuk melihat apa yang mereka lakukan.
Saya menggunakan VirtualBox 4.2.16-r86992 dan Vagrant 1.3.3.
Saya membuat direktori bernama
nametest
dan berlariuntuk menghasilkan Vagrantfile default. Kemudian saya membuka GUI VirtualBox sehingga saya bisa melihat apa nama kotak yang saya buat akan muncul.
Default Vagrantfile
Nama GUI VirtualBox: "nametest_default_1386347922"
Komentar: Nama default ke format DIRECTORY_default_TIMESTAMP.
Tentukan VM
Nama GUI VirtualBox: "nametest_foohost_1386347922"
Komentar: Jika Anda secara eksplisit mendefinisikan VM, nama yang digunakan menggantikan token 'default'. Ini adalah keluaran nama gelandangan di konsol. Menyederhanakan berdasarkan
zook
masukan (komentator)Tetapkan Nama Penyedia
Nama GUI VirtualBox: "foohost"
Komentar: Jika Anda mengatur
name
atribut di blok konfigurasi penyedia, nama itu akan menjadi seluruh nama yang ditampilkan di GUI VirtualBox.Contoh Gabungan: Tetapkan VM -dan- Tetapkan Nama Penyedia
Nama GUI VirtualBox: "barhost"
Komentar: Jika Anda menggunakan kedua metode secara bersamaan, nilai yang ditetapkan
name
dalam blok konfigurasi penyedia menang. Menyederhanakan berdasarkanzook
masukan (komentator)Set
hostname
(BONUS)Komentar: Ini menetapkan nama host di dalam VM. Ini akan menjadi output dari
hostname
perintah di VM dan juga ini adalah apa yang terlihat di prompt sepertivagrant@<hostname>
, di sini akan terlihat sepertivagrant@buzbar
Kode Akhir
Jadi begitulah. Anda sekarang tahu 3 opsi berbeda yang dapat Anda atur dan efek yang dimilikinya. Saya kira ini masalah pilihan saat ini? (Saya baru mengenal Vagrant, jadi saya belum bisa berbicara dengan praktik terbaik.)
sumber
VBoxManage list vms
pada baris perintah.define VM
nama metode digunakan dalam stdout dan log Vagrant, sementaraset provider name
nama digunakan untuk mengelola kotak dengan penyedia. Jadi keduanya relevan.do... end
blok jika kosong.config.vm.define "foohost"
berfungsi dengan baik.Bringing machine 'default' up with 'virtualbox' provider...
ada ketika Anda mengeksekusivagrant up
Ini adalah cara saya menetapkan nama untuk masing-masing VM. Ubah
YOURNAMEHERE
nama yang Anda inginkan.Isi dari Vagrantfile:
Output terminal:
sumber
config.vm.define :app_name
berfungsi juga.config.vm.define YOURNAMEHERE do |t| end
Jika Anda ingin mengubah hal lain alih-alih 'default', maka tambahkan saja baris tambahan ini ke Vagrantfile Anda:
Ubah nama basebox, saat menggunakan "status gelandangan"
Di mana "tendo" akan menjadi nama yang akan muncul alih-alih default
sumber
Saya menentukan nama dengan mendefinisikan di dalam VagrantFile dan juga menentukan nama host jadi saya senang melihat nama proyek saya saat menjalankan perintah Linux secara independen dari OS perangkat saya. ✌️
sumber
Ya, untuk penyedia Virtualbox melakukan sesuatu seperti ini:
sumber
vagrant destroy
kemudian membawanya kembali itu masih menyebutnya default.Anda dapat mengubah nama mesin default gelandangan dengan mengubah nilai
config.vm.define
.Berikut adalah Vagrantfile sederhana yang menggunakan getopts dan memungkinkan Anda untuk mengubah nama secara dinamis:
Jadi untuk menggunakan nama yang berbeda, Anda dapat menjalankan misalnya:
Catatan:
--vm-name
Parameter perlu ditentukan sebelumup
perintah.atau:
sumber
Jika ada banyak orang yang menggunakan file gelandangan Anda - Anda mungkin ingin mengatur nama secara dinamis . Di bawah ini adalah contoh bagaimana melakukannya menggunakan nama pengguna dari mesin HOST Anda sebagai nama kotak dan nama host:
sumber