diff --git a/Vagrantfile b/Vagrantfile index 53e7e3da7ca..3938bb0b36f 100644 --- a/Vagrantfile +++ b/Vagrantfile @@ -22,32 +22,32 @@ # under the License. Vagrant.configure(2) do |config| - config.vm.define "precise", autostart: false do |config| + config.vm.define "precise" do |config| config.vm.box = "ubuntu/precise64" ubuntu_common config end - config.vm.define "trusty", autostart: false do |config| + config.vm.define "trusty" do |config| config.vm.box = "ubuntu/trusty64" ubuntu_common config end - config.vm.define "vivid", autostart: false do |config| + config.vm.define "vivid" do |config| config.vm.box = "ubuntu/vivid64" ubuntu_common config end - config.vm.define "wheezy", autostart: false do |config| + config.vm.define "wheezy" do |config| config.vm.box = "debian/wheezy64" deb_common(config) end - config.vm.define "jessie", autostart: false do |config| + config.vm.define "jessie" do |config| config.vm.box = "debian/jessie64" deb_common(config) end - config.vm.define "centos-6", autostart: false do |config| + config.vm.define "centos-6" do |config| # TODO switch from chef to boxcutter to provide? config.vm.box = "chef/centos-6.6" rpm_common(config) end - config.vm.define "centos-7", autostart: false do |config| + config.vm.define "centos-7" do |config| # There is a centos/7 box but it doesn't have rsync or virtualbox guest # stuff on there so its slow to use. So chef it is.... # TODO switch from chef to boxcutter to provide? @@ -59,11 +59,11 @@ Vagrant.configure(2) do |config| # config.vm.box = "boxcutter/oel66" # rpm_common(config) # end - config.vm.define "oel-7", autostart: false do |config| + config.vm.define "oel-7" do |config| config.vm.box = "boxcutter/oel70" rpm_common(config) end - config.vm.define "fedora-22", autostart: false do |config| + config.vm.define "fedora-22" do |config| # Fedora hosts their own 'cloud' images that aren't in Vagrant's Atlas but # and are missing required stuff like rsync. It'd be nice if we could use # them but they much slower to get up and running then the boxcutter image. @@ -75,6 +75,33 @@ Vagrant.configure(2) do |config| # the elasticsearch project called vagrant.... config.vm.synced_folder ".", "/vagrant", disabled: true config.vm.synced_folder "", "/elasticsearch" + if Vagrant.has_plugin?("vagrant-cachier") + config.cache.scope = :box + end + config.vm.defined_vms.each do |name, config| + config.options[:autostart] = false + set_prompt = lambda do |config| + # Sets up a consistent prompt for all users. Or tries to. The VM might + # contain overrides for root and vagrant but this attempts to work around + # them by re-source-ing the standard prompt file. + config.vm.provision "prompt", type: "shell", inline: <<-SHELL + cat \<\ /etc/profile.d/elasticsearch_prompt.sh +export PS1='#{name}:\\w$ ' +PROMPT + grep 'source /etc/profile.d/elasticsearch_prompt.sh' ~/.bashrc | + cat \<\> ~/.bashrc +# Replace the standard prompt with a consistent one +source /etc/profile.d/elasticsearch_prompt.sh +SOURCE_PROMPT + grep 'source /etc/profile.d/elasticsearch_prompt.sh' ~vagrant/.bashrc | + cat \<\> ~vagrant/.bashrc +# Replace the standard prompt with a consistent one +source /etc/profile.d/elasticsearch_prompt.sh +SOURCE_PROMPT + SHELL + end + config.config_procs.push ['2', set_prompt] + end end def ubuntu_common(config) @@ -90,24 +117,17 @@ end def deb_common(config) provision(config, "apt-get update", "/var/cache/apt/archives/last_update", "apt-get install -y", "openjdk-7-jdk") - if Vagrant.has_plugin?("vagrant-cachier") - config.cache.scope = :box - end end def rpm_common(config) provision(config, "yum check-update", "/var/cache/yum/last_update", "yum install -y", "java-1.7.0-openjdk-devel") - if Vagrant.has_plugin?("vagrant-cachier") - config.cache.scope = :box - end end def dnf_common(config) provision(config, "dnf check-update", "/var/cache/dnf/last_update", "dnf install -y", "java-1.8.0-openjdk-devel") if Vagrant.has_plugin?("vagrant-cachier") - config.cache.scope = :box # Autodetect doesn't work.... config.cache.auto_detect = false config.cache.enable :generic, { :cache_dir => "/var/cache/dnf" } @@ -116,7 +136,7 @@ end def provision(config, update_command, update_tracking_file, install_command, java_package) - config.vm.provision "elasticsearch bats dependencies", type: "shell", inline: <<-SHELL + config.vm.provision "bats dependencies", type: "shell", inline: <<-SHELL set -e installed() { command -v $1 2>&1 >/dev/null