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?