回答:
Vagrantで時間を過ごした後、カスタムボックスのソリューションを得ました。まず、Linux OSをlibvirt / qvmにインストールし、カスタマイズのためにログインしてvagrant
、パスワードでユーザーを作成しますvagrant
adduser vagrant
vagrant
ユーザーはパスワードプロンプトなしでsudoコマンドを実行できる必要があります
sudo visudo -f /etc/sudoers.d/vagrant
そして貼り付け
vagrant ALL=(ALL) NOPASSWD:ALL
Vagrant Boxをカスタマイズし、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
必要な変更を行い、VMをシャットダウンします。ここで、ゲストVMが実行されているホストマシンに移動 /var/lib/libvirt/images/
し、変更を行った生のイメージを選択して、たとえばどこかにコピーします/test
cp /var/lib/libvirt/images/test.img /test
2つのファイルmetadata.json
を作成しVagrantfile
、/test
doエントリにmetadata.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
Vagrant VMの構成を開始します
vagrant up --provider=libvirt
楽しい !!!
~/.vagrant.d/boxes/<name>/0/libvirt/