Advertisement
Guest User

Multi-Machine Vagrant Example

a guest
Mar 4th, 2015
202
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 1.99 KB | None | 0 0
  1. def puppetize(node)
  2.   node.puppet_install.puppet_version = '3.7.3'
  3.  
  4.   node.vm.synced_folder '../../hiera', '/tmp/hiera', type: 'rsync'
  5.  
  6.   node.vm.provision 'puppet' do |puppet|
  7.     puppet.facter = {
  8.       'vagrant' => true,
  9.       'host' => node.vm.hostname,
  10.     }
  11.     puppet.synced_folder_type = 'rsync'
  12.     puppet.manifests_path = '..'
  13.     puppet.manifest_file  = 'site.pp'
  14.     puppet.module_path = ['../../puppet/modules', 'puppet-modules.local']
  15.     puppet.hiera_config_path = '../hiera.yaml'
  16.     puppet.options = ['--verbose']
  17.  
  18.     # Allow for machine specific overrides
  19.     yield puppet
  20.   end
  21. end
  22.  
  23.  
  24. def guest(config, role, serial=nil)
  25.   name = role
  26.   if serial then
  27.     name += "-#{serial}"
  28.   end
  29.   config.vm.define name do |guest|
  30.     guest.vm.hostname = name
  31.     guest.ssh.proxy_command = "ssh -W %h:%p #{USER}@#{HOST}"
  32.     guest.vm.provider 'managed' do |managed|
  33.       guest.vm.box = 'tknerr/managed-server-dummy'
  34.       managed.server = name
  35.     end
  36.     guest.vm.provider :libvirt do |domain, override|
  37.       override.vm.box = 'centos-6.6'
  38.       domain.driver = 'xen'
  39.       domain.uri = "xen+ssh://#{USER}@#{HOST}/system?socket=/var/run/libvirt/libvirt-sock"
  40.       domain.storage_pool_name = 'vagrant'
  41.       yield domain
  42.     end
  43.  
  44.     puppetize(guest) do |puppet|
  45.       puppet.facter['role'] = role
  46.       puppet.facter['serial'] = serial
  47.     end
  48.   end
  49. end
  50.  
  51. Vagrant.configure('2') do |config|
  52.   # SNIP
  53.  
  54.   guest(config, 'logstash') do |domain|
  55.     domain.memory = 1024
  56.     domain.cpus = 2
  57.   end
  58.   guest(config, 'kibana') do |domain|
  59.     domain.memory = 256
  60.     domain.cpus = 2
  61.   end
  62.   guest(config, 'es-master') do |domain|
  63.     domain.memory = 512
  64.     domain.cpus = 2
  65.   end
  66.   guest(config, 'es-data', 1) do |domain|
  67.     domain.memory = 2048
  68.     domain.cpus = 2
  69.   end
  70.   guest(config, 'es-data', 2) do |domain|
  71.     domain.memory = 2048
  72.     domain.cpus = 2
  73.   end
  74.   guest(config, 'haproxy') do |domain|
  75.     domain.memory = 256
  76.     domain.cpus = 1
  77.   end
  78. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement