Sau khi dành thời gian với vagrant tôi đã có giải pháp cho hộp tùy chỉnh. trước hết hãy cài đặt bất kỳ HĐH Linux nào trong libvirt / qvm và đăng nhập vào nó để tùy chỉnh và tạo vagrant
người dùng bằng mật khẩuvagrant
adduser vagrant
vagrant
người dùng sẽ có thể chạy các lệnh sudo mà không cần nhắc mật khẩu
sudo visudo -f /etc/sudoers.d/vagrant
và dán
vagrant ALL=(ALL) NOPASSWD:ALL
làm bất cứ điều gì bạn muốn tùy chỉnh hộp vagrant của bạn và cài đặt openssh-server
nếu không được cài đặt trước đó
sudo apt-get install -y openssh-server
đặt khóa ssh từ người dùng mơ hồ
mkdir -p /home/vagrant/.ssh
chmod 0700 /home/vagrant/.ssh
wget --no-check-certificate \
https://raw.github.com/mitchellh/vagrant/master/keys/vagrant.pub \
-O /home/vagrant/.ssh/authorized_keys
chmod 0600 /home/vagrant/.ssh/authorized_keys
chown -R vagrant /home/vagrant/.ssh
mở sudo vi /etc/ssh/sshd_config
và thay đổi
PubKeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys
PermitEmptyPasswords no
PasswordAuthentication no
khởi động lại dịch vụ ssh bằng
sudo service ssh restart
cài đặt các gói phát triển bổ sung cho các công cụ để biên dịch và cài đặt đúng
sudo apt-get install -y gcc build-essential linux-headers-server
thực hiện bất kỳ thay đổi nào bạn muốn và tắt VM. bây giờ, hãy đến với máy chủ lưu trữ máy khách VM đang chạy /var/lib/libvirt/images/
và chọn và chọn hình ảnh thô mà bạn đã thay đổi và sao chép ở đâu đó chẳng hạn/test
cp /var/lib/libvirt/images/test.img /test
tạo ra hai tập tin metadata.json
và Vagrantfile
trong /test
entry làm trongmetadata.json
{
"provider" : "libvirt",
"format" : "qcow2",
"virtual_size" : 40
}
và trong Vagrantfile
Vagrant.configure("2") do |config|
config.vm.provider :libvirt do |libvirt|
libvirt.driver = "kvm"
libvirt.host = 'localhost'
libvirt.uri = 'qemu:///system'
end
config.vm.define "new" do |custombox|
custombox.vm.box = "custombox"
custombox.vm.provider :libvirt do |test|
test.memory = 1024
test.cpus = 1
end
end
end
chuyển đổi test.img sang định dạng qcow2 bằng cách sử dụng
sudo qemu-img convert -f raw -O qcow2 test.img ubuntu.qcow2
đổi tên ubfox.qcow2 thành box.img
mv ubuntu.qcow2 box.img
Lưu ý: hiện tại, libvirt-vagrant chỉ hỗ trợ định dạng qcow2. vì vậy, đừng thay đổi định dạng chỉ đổi tên thành box.img. bởi vì nó lấy đầu vào với tên box.img theo mặc định.
tạo hộp
tar cvzf custom_box.box ./metadata.json ./Vagrantfile ./box.img
thêm hộp vào
vagrant box add --name custom custom_box.box
đi đến bất kỳ thư mục nào bạn muốn khởi tạo vagrant và chạy lệnh dưới đây sẽ tạo tệp Vagrant
vagrant init custom
bắt đầu cấu hình VM
vagrant up --provider=libvirt
thưởng thức !!!