Como eu executo o Vagrant como um usuário normal no Fedora?

1

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.

    
por nan0s 14.05.2016 / 08:46

0 respostas