libvirt/kvm 인스턴스에서 사용자 정의 방랑 상자를 만드는 방법은 무엇입니까?

libvirt/kvm 인스턴스에서 사용자 정의 방랑 상자를 만드는 방법은 무엇입니까?

VirtualBox 인스턴스에서 사용자 정의 vagrant 상자를 생성하기 위한 많은 리소스가 인터넷에 있습니다. 하지만 kvm/libvirt 인스턴스에서 직접 사용자 정의 방랑 상자를 만드는 직접적인 방법을 알고 싶습니다. VirtualBox를 다른 공급자로 변환하기 위해 vagrant-mutate 또는 도구를 사용하는 것을 제안하지 마십시오.

답변1

vagrant와 시간을 보낸 후 상자를 맞춤화하는 솔루션을 얻었습니다. 먼저 libvirt/qvm에 Linux OS를 설치하고 로그인하여 vagrant비밀번호로 사용자 정의 및 생성vagrant

adduser vagrant

vagrant사용자는 비밀번호 프롬프트 없이 sudo 명령을 실행할 수 있어야 합니다.

sudo visudo -f /etc/sudoers.d/vagrant

그리고 붙여넣기

vagrant ALL=(ALL) NOPASSWD:ALL

방랑자 상자를 사용자 정의하고 설치하고 싶은 모든 작업을 수행하십시오( openssh-server이전에 설치하지 않은 경우).

sudo apt-get install -y openssh-server

vagrant 사용자의 SSH 키를 입력하세요.

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

sudo를 열고 vi /etc/ssh/sshd_config변경하세요.

PubKeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys
PermitEmptyPasswords no
PasswordAuthentication no

다음 명령을 사용하여 SSH 서비스를 다시 시작하십시오.

 sudo service ssh restart

도구가 올바르게 컴파일되고 설치되도록 추가 개발 패키지를 설치합니다.

sudo apt-get install -y gcc build-essential linux-headers-server

원하는 대로 변경하고 가상 머신을 종료합니다. 이제 게스트 가상 머신이 실행 중인 호스트로 이동하여 /var/lib/libvirt/images/변경한 원본 이미지로 이동하여 선택하고 해당 위치에 복사합니다./test

cp /var/lib/libvirt/images/test.img  /test 

두 개의 파일을 생성 metadata.json하고 입력하십시오 Vagrantfile./testmetadata.json

{
  "provider"     : "libvirt",
  "format"       : "qcow2",
  "virtual_size" : 40
}

그리고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

test.img를 qcow2 형식으로 변환하는 데 사용

sudo qemu-img convert -f raw -O qcow2  test.img  ubuntu.qcow2

ubuntu.qcow2의 이름을 box.img로 바꿉니다.

mv ubuntu.qcow2 box.img 

노트:현재 libvirt-vagrant는 qcow2 형식만 지원합니다. 따라서 형식을 변경하지 말고 이름을 box.img로 바꾸십시오. 기본적으로 box.img라는 입력을 허용하기 때문입니다.
상자 만들기

tar cvzf custom_box.box ./metadata.json ./Vagrantfile ./box.img 

트램프에 상자 추가

vagrant box add --name custom custom_box.box

vagrant를 초기화하려는 디렉터리로 이동하고 다음 명령을 실행하여 Vagrant 파일을 만듭니다.

vagrant init custom

방랑 VM 구성 시작

vagrant up --provider=libvirt 

즐기다! ! !

관련 정보