如何通过Vagrantfile更改文件

shi*_*hin 9 puppet vagrant

我不确定我是否应该使用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
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

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

export RBENV_ROOT="${HOME}/.rbenv"

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

然后运行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'
Run Code Online (Sandbox Code Playgroud)

mat*_*ise 8

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

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

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

cp /vagrant/bashrc ~/.bashrc
source ~/.bashrc
Run Code Online (Sandbox Code Playgroud)

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

cp /vagrant/bashrc /home/<username>/.bashrc
su - <username> -c "<command to run as user>"
Run Code Online (Sandbox Code Playgroud)