如何通过Vagrantfile更改文件

时间:2013-11-08 00:32:28

标签: vagrant puppet

我不确定我是否应该使用Puppet。我通过provision.sh更新并安装。

我的Vagrantfile

Vagrant.configure("2") do |config|
  config.vm.box = "ubuntu32"
  config.vm.provision :shell, path: './provision.sh'  
  config.vm.network "public_network"
end

provision.sh

apt-get update
apt-get -y install build-essential git-core python-software-properties nodejs
apt-get -y install vim
apt-get -y install curl
curl https://raw.github.com/fesplugas/rbenv-installer/master/bin/rbenv-installer | bash

现在我需要将以下内容添加到顶部的〜/ .bashrc中。或者我可以准备一个文件.bashrc并用〜/ .bashrc

替换它
export RBENV_ROOT="${HOME}/.rbenv"

if [ -d "${RBENV_ROOT}" ]; then
  export PATH="${RBENV_ROOT}/bin:${PATH}"
  eval "$(rbenv init -)"
fi

然后运行source .bashrc

然后运行以下命令。

rbenv install 2.0.0-p247
rbenv rehash
gem install bundler
bundle
sudo apt-get install libpq-dev 
gem install pg -v '0.15.0'

1 个答案:

答案 0 :(得分:8)

您可以在provision.sh脚本中执行此操作。 Vagrant会自动将您的Vagrantfile所在的目录与来宾VM共享为/vagrant文件夹。

根据需要创建.bashrc文件,并将其放在与Vagrantfile相同的目录中。我会遗漏''。并将其称为bashrc,这样您就不会忘记它。

然后您可以添加到您的provision.sh脚本:

cp /vagrant/bashrc ~/.bashrc
source ~/.bashrc

注意:bash配置以root用户身份运行,如果要将其用作非root用户,则必须稍微修改一下。

cp /vagrant/bashrc /home/<username>/.bashrc
su - <username> -c "<command to run as user>"