exécuter des commandes en tant qu'utilisateur après l'Errance de provisionnement

Il y a des commandes qui doivent être exécutées en tant qu'utilisateur normal après la mise en service initiale. Je pensais que je pouvais le faire en utilisant un script shell la commande su --login -c <command> vagrant, mais il n'est pas d'obtenir le chemin d'accès de l'utilisateur ou d'autres paramètres d'environnement de .bashrc.

par exemple:

#!/usr/bin/env bash
su --login -c "rbenv install 2.0.0-p353" vagrant
su --login -c "rbenv global 2.0.0-p353" vagrant
su --login -c "gem update --system" vagrant
su --login -c "yes | gem update" vagrant
su --login -c "gem install rdoc" vagrant
su --login -c "gem install rails pg" vagrant

Est-il un moyen de faire cela? Peut-être qu'il a à faire avec un autre outil de mise en service comme Puppet ou Chef? J'ai pensé à créer un autre script shell que les sources de la .bashrc, la copier dans la boîte à l'aide d'un :fichier provisioner et de l'exécution des commandes comme ça, mais il semble comme une sorte de hack.

Quelle est la bonne façon de le faire?

  • su -p permettra de préserver les variables d'environnement - cela vous aide?
  • Je pense que ce sera le préfet à votre question à mentionner à propos de construire Vagrant boîte avec Ruby de l'installation, ajoutez Ruby tag et ajouter Rubis Installation sur la question du titre Comme ça => execute Ruby commandes d'installation en tant qu'utilisateur au cours de l'Errance de provisionnement
InformationsquelleAutor Vince | 2014-03-20