Você pode usar o provisionador "file". Parece ser indocumentado, mas o uso é simples. Por exemplo:
Vagrant.configure('2') do |config|
# ...
config.vm.provision :file do |file|
file.source = '~/.my.conf'
file.destination = '/home/vagrant/.my.conf'
end
end
A primeira captura é que ele é executado como o usuário ssh ("vagrant" por padrão) sem sudo, portanto, é necessário ter acesso de gravação ao diretório na VM. Uma solução alternativa é copiar para um local temporário e, em seguida, usar um provedor de shell normal para copiá-lo / movê-lo para o local correto.
O segundo problema é que os caminhos de destino não são expandidos corretamente. Portanto, usar ~
ou $HOME
provavelmente não funcionará como esperado. (O caminho de origem, por outro lado, é expandido.)