Git Product home page Git Product logo

vagrant_haproxy_provisioner's Introduction

VagrantHaproxyProvisioner

This is a dummy HAProxy provisioner for Vagrant, all what it does is that you pass it a set of ips and a balance type and other configurations and it will setup HAProxy on that node and handle those configurations

Usage

# -*- mode: ruby -*-
# vi: set ft=ruby :
require 'json'

Vagrant.configure(2) do |config|
  # If the file doesn't exist, make ips automatics
  ips = File.exist?("ips.json") ? JSON.parse(open("ips.json").readline()) : nil
  n = ips.nil? ? 1 : ips.length
  config.vm.box = "precise64"
  (1..n).each do |n|
    config.vm.define ("loadbalancer_node%d" % n) do |machine|
      options = {}
      unless ips.nil?
        options[:ip] =  ips[n-1]
      end
      machine.vm.network :public_network , options
      # change that to use chef/puppet
      machine.vm.provision "shell", path: "install_apache2.sh"
    end
  end
  config.vm.define("loadbalancer") do |machine|
    machine.vm.network :public_network
    machine.vm.provision "haproxy_provisioner" do |p|
      p.ips = ips.nil? ? [] : ips
    end

  end
end

The above script gets a list of ips (free) from ips.json file and then it create a node for each, it use a simple script to install LAMP on each node, for the loadbalancer node the configurations are clear.

Notes

This is intended only for testing purposes.

vagrant_haproxy_provisioner's People

Contributors

magellanea avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.