Vagrantfile 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. # -*- mode: ruby -*-
  2. # vi: set ft=ruby :
  3. require_relative '../vagrant-common/checks'
  4. require_relative '../vagrant-common/core'
  5. provider = get_provider
  6. check_provider_needs(provider)
  7. Vagrant.configure("2") do |config|
  8. server_ip = ENV.fetch('TFB_AWS_APP_IP', '172.16.0.16')
  9. client_ip = ENV.fetch('TFB_AWS_LOAD_IP', '172.16.0.17')
  10. databa_ip = ENV.fetch('TFB_AWS_DB_IP', '172.16.0.18')
  11. # Put the keys inside each box
  12. Dir['keys/*'].each do |fname|
  13. config.vm.provision :file do |file|
  14. file.source = fname
  15. file.destination = "~/.ssh/" + File.basename(fname)
  16. end
  17. end
  18. config.vm.provision :file do |file|
  19. file.source = "../vagrant-common/custom_motd.sh"
  20. file.destination = "~/.custom_motd.sh"
  21. end
  22. config.vm.define "client" do |client|
  23. provision_bootstrap(client, "client")
  24. provider_aws(client, "loadgen", client_ip)
  25. provider_virtualbox(client, "client", client_ip)
  26. end
  27. config.vm.define "db" do |db|
  28. provision_bootstrap(db, "database")
  29. provider_aws(db, "database", databa_ip)
  30. provider_virtualbox(db, "database", databa_ip)
  31. end
  32. # Define the app server as the primary VM
  33. config.vm.define "app", primary: true do |app|
  34. provision_bootstrap(app, "server")
  35. provider_aws(app, "appserver", server_ip)
  36. provider_virtualbox(app, "server", server_ip)
  37. end
  38. end