facts/Vagrantfile in simp-rspec-puppet-facts-2.0.1 vs facts/Vagrantfile in simp-rspec-puppet-facts-2.1.0
- old
+ new
@@ -1,17 +1,44 @@
-# -*- mode: ruby -*-
-# vi: set ft=ruby :
-
-
# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
VAGRANTFILE_API_VERSION = '2'
# Used with google provider unless ENV['GOOGLE_ZONE'] is set
DEFAULT_GOOGLE_ZONE = 'us-east1-b'
VM_FQDN = 'foo.example.com'
+GOOGLE_PROJECT_ID = ENV.fetch('GOOGLE_CLOUD_PROJECT_ID', nil)
+
+unless GOOGLE_PROJECT_ID
+ $stderr.puts("Warning: GOOGLE_CLOUD_PROJECT_ID not set, will not use GCE")
+end
+
+VALID_OS_TYPES = [
+ 'CENTOS',
+ 'OEL',
+ 'RHEL'
+]
+
+found_os = false
+
+VALID_OS_TYPES.each do |os|
+ if ENV.fetch(os, nil)
+ found_os = true
+ break
+ end
+end
+
+unless found_os
+ $stderr.puts("Error: You must set one of ['#{VALID_OS_TYPES.join(', ')}'] as an environment variable to 'yes'")
+ exit 1
+end
+
+if Dir.glob('modules/*').empty?
+ $stderr.puts('No modules found in the "modules" directory. Hit ^C to exit or Enter to proceed.')
+ $stdin.gets
+end
+
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.hostname = VM_FQDN
config.vm.provider 'virtualbox' do |vb|
# centos/* boxes don't install vbox guest additions
@@ -22,48 +49,49 @@
@_msg = msg
exit 99
end
end
- # Reference: https://github.com/mitchellh/vagrant-google#configuration
- config.vm.provider 'google' do |google, override|
+ if GOOGLE_PROJECT_ID
+ # Reference: https://github.com/mitchellh/vagrant-google#configuration
+ config.vm.provider 'google' do |google, override|
- # The Client Email address for your Service Account
- google.google_project_id = ENV.fetch('GOOGLE_CLOUD_PROJECT_ID')
+ # The Client Email address for your Service Account
+ google.google_project_id = ENV.fetch('GOOGLE_CLOUD_PROJECT_ID')
- # The Client Email address for your Service Account
- # (it should end with gserviceaccount.com)
- google.google_client_email = ENV.fetch('GOOGLE_CLIENT_EMAIL')
+ # The Client Email address for your Service Account
+ # (it should end with gserviceaccount.com)
+ google.google_client_email = ENV.fetch('GOOGLE_CLIENT_EMAIL')
- if ENV.key? 'GOOGLE_KEY_LOCATION'
- # The location of the P12 private key file matching your Service Account.
- google.google__key_location = ENV['GOOGLE_KEY_LOCATION']
- else
- # The location of the JSON private key file matching your Service Account.
- # "/path/to/your/private-key.json"
- google.google_json_key_location = ENV.fetch('GOOGLE_JSON_KEY_LOCATION')
- end
+ if ENV.key? 'GOOGLE_KEY_LOCATION'
+ # The location of the P12 private key file matching your Service Account.
+ google.google__key_location = ENV['GOOGLE_KEY_LOCATION']
+ else
+ # The location of the JSON private key file matching your Service Account.
+ # "/path/to/your/private-key.json"
+ google.google_json_key_location = ENV.fetch('GOOGLE_JSON_KEY_LOCATION')
+ end
- # The zone name where the instance will be created.
- # Make sure to set this to trigger the zone_config
- google.zone = _zone = ENV.fetch('GOOGLE_ZONE', DEFAULT_GOOGLE_ZONE)
+ # The zone name where the instance will be created.
+ # Make sure to set this to trigger the zone_config
+ google.zone = _zone = ENV.fetch('GOOGLE_ZONE', DEFAULT_GOOGLE_ZONE)
- google.zone_config _zone do |zone|
- # zone.name = 'vagrant-rspec-puppet-facts'
- zone.machine_type = ENV['GOOGLE_MACHINE_TYPE'] || 'g1-small'
- zone.zone = _zone
- zone.metadata = {'custom' => 'metadata', 'testing' => 'foobarbaz'}
- zone.scopes = ['monitoring', 'https://www.googleapis.com/auth/compute']
- zone.tags = ['vagrant', 'simp-rspec-puppet-facts', 'temporary']
- end
+ google.zone_config _zone do |zone|
+ # zone.name = 'vagrant-rspec-puppet-facts'
+ zone.machine_type = ENV['GOOGLE_MACHINE_TYPE'] || 'g1-small'
+ zone.zone = _zone
+ zone.metadata = {'custom' => 'metadata', 'testing' => 'foobarbaz'}
+ zone.scopes = ['monitoring', 'https://www.googleapis.com/auth/compute']
+ zone.tags = ['vagrant', 'simp-rspec-puppet-facts', 'temporary']
+ end
- override.ssh.username = ENV.fetch('GOOGLE_SSH_USERNAME')
- override.ssh.private_key_path = ENV.fetch('GOOGLE_SSH_KEY', '~/.ssh/id_rsa')
- override.vm.box = 'google/gce'
+ override.ssh.username = ENV.fetch('GOOGLE_SSH_USERNAME')
+ override.ssh.private_key_path = ENV.fetch('GOOGLE_SSH_KEY', '~/.ssh/id_rsa')
+ override.vm.box = 'google/gce'
+ end
end
-
# Optional: RHEL subscription information
#
# A licensed RHEL subscription is required to use yum to configure VMs, and
# yum is needed to sey up the environment to collect most SIMP facter facts.
#
@@ -85,46 +113,72 @@
# The centos/* machines won't support vboxsf
# config.vm.synced_folder ".", "/vagrant", type: "rsync", rsync__exclude: ['.git/']
config.vm.synced_folder ".", "/vagrant", type: "virtualbox"
- unless ENV['CENTOS'] == 'no'
+ if ENV['CENTOS'] == 'yes'
config.vm.define "centos-6-x86_64" do |host|
host.vm.provider 'virtualbox' do |vb,override|
override.vm.box = "centos/6"
end
- host.vm.provider 'google' do |google,override|
- google.name = 'foo-centos6-64'
- google.zone = ENV.fetch('GOOGLE_ZONE', DEFAULT_GOOGLE_ZONE)
- google.zone_config ENV.fetch('GOOGLE_ZONE', DEFAULT_GOOGLE_ZONE) do |zone|
- zone.image = 'centos-6-v20170717'
+
+ if GOOGLE_PROJECT_ID
+ host.vm.provider 'google' do |google,override|
+ google.name = 'foo-centos6-64'
+ google.zone = ENV.fetch('GOOGLE_ZONE', DEFAULT_GOOGLE_ZONE)
+ google.zone_config ENV.fetch('GOOGLE_ZONE', DEFAULT_GOOGLE_ZONE) do |zone|
+ zone.image = 'centos-6-v20170717'
+ end
end
-# override.vm.provision 'shell', inline: "/use/bin/hostname #{VM_FQDN}"
end
+
host.vm.provision "file", source: "Gemfile", destination: "Gemfile"
host.vm.provision "shell", path: "scripts/get_facts_for_each_facter.sh", args: "'centos 6'"
host.vm.provision "shell", inline: "/sbin/shutdown -h now" unless ENV['SHUTDOWN'] == 'no'
end
config.vm.define "centos-7-x86_64" do |host|
host.vm.provider 'virtualbox' do |vb,override|
override.vm.box = "centos/7"
end
- host.vm.provider 'google' do |google,override|
- google.name = 'foo-centos7-64'
- google.zone = ENV.fetch('GOOGLE_ZONE', DEFAULT_GOOGLE_ZONE)
- google.zone_config ENV.fetch('GOOGLE_ZONE', DEFAULT_GOOGLE_ZONE) do |zone|
- zone.image = 'centos-7-v20170719'
+
+ if GOOGLE_PROJECT_ID
+ host.vm.provider 'google' do |google,override|
+ google.name = 'foo-centos7-64'
+ google.zone = ENV.fetch('GOOGLE_ZONE', DEFAULT_GOOGLE_ZONE)
+ google.zone_config ENV.fetch('GOOGLE_ZONE', DEFAULT_GOOGLE_ZONE) do |zone|
+ zone.image = 'centos-7-v20170719'
+ end
end
- # override.vm.provision 'shell', inline: "/usr/bin/hostnamectl set-hostname #{VM_FQDN}"
end
+
host.vm.provision "file", source: "Gemfile", destination: "Gemfile"
host.vm.provision "shell", path: "scripts/get_facts_for_each_facter.sh", args: "'centos 7'"
host.vm.provision "shell", inline: "/sbin/shutdown -h now" unless ENV['SHUTDOWN'] == 'no'
end
end
+ if ENV['OEL'] == 'yes'
+ config.vm.define "oel-6-x86_64" do |host|
+ host.vm.provider 'virtualbox' do |vb,override|
+ override.vm.box = "elastic/oel-6-x86_64"
+ end
+ host.vm.provision "file", source: "Gemfile", destination: "Gemfile"
+ host.vm.provision "shell", path: "scripts/get_facts_for_each_facter.sh", args: "'centos 6'"
+ host.vm.provision "shell", inline: "/sbin/shutdown -h now" unless ENV['SHUTDOWN'] == 'no'
+ end
+
+ config.vm.define "oel-7-x86_64" do |host|
+ host.vm.provider 'virtualbox' do |vb,override|
+ override.vm.box = "elastic/oel-7-x86_64"
+ end
+ host.vm.provision "file", source: "Gemfile", destination: "Gemfile"
+ host.vm.provision "shell", path: "scripts/get_facts_for_each_facter.sh", args: "'centos 7'"
+ host.vm.provision "shell", inline: "/sbin/shutdown -h now" unless ENV['SHUTDOWN'] == 'no'
+ end
+ end
+
if ENV['RHEL'] == 'yes'
config.vm.define "redhat-6-x86_64" do |host|
os = 'redhat'
ver = '6'
if Vagrant.has_plugin?('vagrant-rsync-back')
@@ -133,14 +187,16 @@
config.vm.provider 'virtualbox' do |vb,override|
override.vm.box = "anandbitra/redhat-6.5"
end
- host.vm.provider 'google' do |google,override|
- google.zone = ENV.fetch('GOOGLE_ZONE', DEFAULT_GOOGLE_ZONE)
- google.zone_config ENV.fetch('GOOGLE_ZONE', DEFAULT_GOOGLE_ZONE) do |zone|
- zone.image = 'rhel-6-v20170717'
+ if GOOGLE_PROJECT_ID
+ host.vm.provider 'google' do |google,override|
+ google.zone = ENV.fetch('GOOGLE_ZONE', DEFAULT_GOOGLE_ZONE)
+ google.zone_config ENV.fetch('GOOGLE_ZONE', DEFAULT_GOOGLE_ZONE) do |zone|
+ zone.image = 'rhel-6-v20170717'
+ end
end
end
host.vm.provision "file", source: "Gemfile", destination: "Gemfile"
host.vm.provision "shell", path: "scripts/get_facts_for_each_facter.sh", args: "'#{os} #{ver}'"
@@ -156,19 +212,25 @@
end
host.vm.provider 'virtualbox' do |vb,override|
override.vm.box = "mrlesmithjr/rhel-7"
end
- host.vm.provider 'google' do |google,override|
- # google.name = 'foo'
- google.zone = ENV.fetch('GOOGLE_ZONE', DEFAULT_GOOGLE_ZONE)
- google.zone_config ENV.fetch('GOOGLE_ZONE', DEFAULT_GOOGLE_ZONE) do |zone|
- zone.image = 'rhel-7-v20170719'
+
+ if GOOGLE_PROJECT_ID
+ host.vm.provider 'google' do |google,override|
+ # google.name = 'foo'
+ google.zone = ENV.fetch('GOOGLE_ZONE', DEFAULT_GOOGLE_ZONE)
+ google.zone_config ENV.fetch('GOOGLE_ZONE', DEFAULT_GOOGLE_ZONE) do |zone|
+ zone.image = 'rhel-7-v20170719'
+ end
end
end
+
host.vm.provision "file", source: "Gemfile", destination: "Gemfile"
host.vm.provision "shell", path: "scripts/get_facts_for_each_facter.sh", args: "'#{os} #{ver}'"
host.vm.provision "shell", inline: "/sbin/shutdown -h now" unless ENV['SHUTDOWN'] == 'no'
end
-
end
end
+
+# -*- mode: ruby -*-
+# vi: set ft=ruby :