Executando um script de shell com cláusula de vagrant

2

Eu configurei uma caixa vagrant usando precis64 (ubuntu 14.04) e instalei pacotes necessários para octopress. Eu posso ssh na caixa vagrant e gerar posts e executar a pré-visualização para o meu site octopress.

Agora, desejo criar um script de provisão para executar automaticamente os comandos a seguir quando a máquina estiver ativa.

gem install bundler
rbenv rehash
bundle install
rake install
rake generate
rake preview

então criei um script de shell usando os comandos acima. Mas quando eu tento executar uma provisão vagabunda ou vagabunda, estou me dando um erro.

==> default: ERROR:  While executing gem ... (Gem::FilePermissionError)
==> default:     You don't have write permissions into the /opt/vagrant_ruby/lib/ruby/gems/1.8 directory.
==> default: bash: rbenv: command not found

A configuração de provisão do meu Vagrantfile é assim. Eu tentei a opção privilegiada tornando-a verdadeira também.

config.vm.provision :shell, :privileged => false, :upload_path => "/home/vagrant/octopress/start.sh", :path => "start.sh"

O que estou fazendo de errado aqui?

Como você pode ver nos logs acima, o script de provisão está tentando usar gem no diretório / opt / vagrant_ruby / lib / ruby / gems. Mas quando eu ssh em vagrant box e verifiquei a localização de gem e rbenv, esses pacotes estão localizados dentro do diretório home dos usuários (/ home / vagrant). O problema parece provisionar script não está usando variáveis de ambiente do usuário 'vagabundo'. Mas quando eu verifico whoami dentro do script, eu estou ficando vagante como saída.

Existe alguma maneira de executar script de provisão com variável de usuário vagabunda?

    
por uiroshan 26.07.2014 / 06:25

1 resposta

3

Este plugin vagante resolveu o problema para mim:

gatilhos vagantes

você pode executar seu script de provisão depois de vagrant up da sua VM:

config.trigger.after :command, :option => "value" do
    run "script"
    ...
  end

e não se esqueça de adicionar sudo aos seus comandos.

    
por 20.04.2015 / 12:21