Estou tentando configurar o Vagrant no Fedora 23 com libvirt
. Ele inicializa e tudo parece bem até que eu seja solicitado por "senha sudo: Preparando para editar / etc / exports. Privilégios de administrador serão necessários".
Eu executo o Vagrant como um usuário normal e não quero executá-lo como root, nem me adicionar ao arquivo sudoers. Só para testar, eu executei vagrant up
como root e tudo funcionou, mas não estou confortável em executar o Vagrant dessa forma.
Encontrei algo enquanto procurava por correções e isso era para alterar as permissões do arquivo /etc/exports
. Isso funciona e deixe-me executar vagrant up
como um usuário normal, mas parece uma solução ruim para mim. Qual é a desvantagem de alterar as permissões do arquivo / etc / exports? Eu realmente gostaria de ter o Vagrant rodando como um usuário normal sem ter que afetar a segurança.
O Virtualbox não é uma alternativa devido às atualizações do kernel. Eu não quero arriscar nada quebrar ou esperar Oracle ou rpmfusion atualizando os módulos do kernel para o Virtualbox.
Eu segui estas instruções do portal do Fedora Developer:
$ sudo dnf install vagrant-libvirt
$ sudo systemctl enable libvirtd
$ lsmod | grep kvm
lsmod | grep kvm não retorna nada, então eu editei o Vagrantfile para usar o driver qemu:
Vagrant.configure("2") do |config|
...
config.vm.provider :libvirt do |libvirt|
libvirt.driver = "qemu"
end
...
end
Usando o libvirt do Vagrant sem prompts de senha
$ sudo gpasswd -a ${USER} libvirt
$ newgrp libvirt
Synced folders with NFS
$ sudo dnf install nfs-utils && sudo systemctl enable nfs-server
Depois, ative os serviços nfs, rpc-bind e mountd para o firewalld:
$ 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
Usando compartilhamentos NFS do Vagrant sem prompts de senha
$ sudo visudo
adicione isto:
# 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
Depois, adicione-se ao grupo vagante, se você já não estiver lá:
$ sudo getent group vagrant >/dev/null || sudo groupadd -r vagrant
$ sudo gpasswd -a ${USER} vagrant
$ newgrp vagrant
Coloque o Vagrant em funcionamento:
$ vagrant init rboyer/ubuntu-trusty64-libvirt
$ vagrant up
Eu já experimentei duas caixas libvirt diferentes do site da Vagrant: aqui e aqui
Ajuda sobre este assunto é muito apreciada. Obrigado.