Fedora 23でこれを試しています。libvirt
起動し、「sudoパスワード:/etc/exports編集の準備。管理者権限が必要です」というメッセージが表示されるまで、すべてが問題ないようです。
私は通常のユーザーとしてVagrantを実行しており、rootとして実行したり、sudoersファイルに自分自身を追加したくありません。私はテストのためにvagrant up
rootとして実行しましたが、すべてがうまくいきますが、Vagrantを実行するのは不便です。
問題を解決するためにインターネット検索を行って発見したのは、ファイルの権限を変更することでした/etc/exports
。これはうまくいき、vagrant up
通常のユーザーとして実行できますが、私にとっては汚い修正のように感じます。 /etc/exports ファイルの権限を変更すると、どのような欠点がありますか?セキュリティを損なうことなく通常のユーザーとしてVagrantを実行したいと思います。
カーネルの更新により、Virtualboxは代替ではありません。私は何も壊れる可能性があり、OracleやrpmfusionがVirtualboxのカーネルモジュールを更新するのを待ちたくありません。
Fedora 開発者ポータルで次のガイドラインに従いました。
$ sudo dnf install vagrant-libvirt
$ sudo systemctl enable libvirtd
$ lsmod | grep kvm
lsmod | grep kvmは何も返さなかったので、qemuドライバを使用するようにVagrantfileを編集しました。
Vagrant.configure("2") do |config|
...
config.vm.provider :libvirt do |libvirt|
libvirt.driver = "qemu"
end
...
end
パスワードプロンプトなしでVagrantでlibvirtを使用する
$ sudo gpasswd -a ${USER} libvirt
$ newgrp libvirt
Synced folders with NFS
$ sudo dnf install nfs-utils && sudo systemctl enable nfs-server
次に、ファイアウォールのnfs、rpc-bind、およびmountdサービスを有効にします。
$ sudo firewall-cmd --permanent --add-service=nfs &&
sudo firewall-cmd --permanent --add-service=rpc-bind &&
sudo firewall-cmd --permanent --add-service=mountd &&
sudo firewall-cmd --reload
パスワードプロンプトなしでVagrantのNFS共有を使用する
$ sudo visudo
これを追加してみてください:
# Allow Vagrant to manage /etc/exports
Cmnd_Alias VAGRANT_EXPORTS_ADD = /usr/bin/tee -a /etc/exports
Cmnd_Alias VAGRANT_NFSD_CHECK = /usr/bin/systemctl status nfs-server.service
Cmnd_Alias VAGRANT_NFSD_START = /usr/bin/systemctl start nfs-server.service
Cmnd_Alias VAGRANT_NFSD_APPLY = /usr/sbin/exportfs -ar
Cmnd_Alias VAGRANT_EXPORTS_REMOVE = /bin/sed -r -e * d -ibak /etc/exports
%vagrant ALL=(root) NOPASSWD: VAGRANT_EXPORTS_ADD, VAGRANT_NFSD_CHECK, VAGRANT_NFSD_START, VAGRANT_NFSD_APPLY, VAGRANT_EXPORTS_REMOVE
その後、まだ vagrant グループに参加していない場合は、次のコマンドを実行します。
$ sudo getent group vagrant >/dev/null || sudo groupadd -r vagrant
$ sudo gpasswd -a ${USER} vagrant
$ newgrp vagrant
Vagrantを起動して実行します。
$ vagrant init rboyer/ubuntu-trusty64-libvirt
$ vagrant up
Vagrant box Webサイトで2つの異なるlibvirtボックスを試してみました。 ここそしてここ
この問題にご協力いただきありがとうございます。ありがとうございます。