reachlocal/boxci

View on GitHub
lib/boxci/templates/providers/aws/Vagrantfile.erb

Summary

Maintainability
Test Coverage
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure("2") do |config|
  config.vm.box = "dummy"

  config.vm.provider :aws do |aws, override|
    aws.access_key_id = "<%= @provider_config.fetch("access_key") %>"
    aws.secret_access_key = "<%= @provider_config.fetch("secret_access_key") %>"
    aws.keypair_name = "<%= @provider_config.fetch("keypair_name") %>"
    <% if @project_config.box_size == 'tiny' %>
      aws.instance_type = 'm1.small'
    <% elsif @project_config.box_size == 'small' %>
      aws.instance_type = 'm1.small'
    <% elsif @project_config.box_size == 'medium' %>
      aws.instance_type = 'm1.medium'
    <% elsif @project_config.box_size == 'large' %>
     aws.instance_type = 'm1.large'
    <% elsif @project_config.box_size == 'xlarge' %>
      aws.instance_type = 'm1.xlarge'
    <% end %>

    # aws.ami = "ami-a81470c1"
    aws.ami = "<%= @provider_config.fetch("ami") %>"
    override.ssh.private_key_path = "<%= @provider_config.fetch("ssh_private_key_path") %>"
    override.ssh.username = "<%= @provider_config.fetch("vagrant_user") %>"
  end

  config.vm.provision :puppet do |puppet|
    puppet.facter = { 
      <% @project_config.puppet_facts.each do |k, v| %>
        "<%= k %>" => "<%= v %>",
      <% end %>
      "role" => "ci", 
      "operationsystem" => "debian",
      "vagrant_user" => "<%= @provider_config.fetch("vagrant_user") %>",
      "vagrant_home" => "<%= @provider_config.fetch("vagrant_home") %>"
    }
    puppet.module_path = "<%= @puppet_path %>/modules"
    puppet.manifests_path = "<%= @puppet_path %>/manifests"
    puppet.manifest_file = "main.pp"
    <% if @options["verbose"] == true %>
    puppet.options = "--verbose --debug"
    <% end %>
  end
end