Repository is archived
No commit activity in last 3 years
No release in over 3 years
It allows one to right rules for firewall, NAT and load balancer using vcloud API and configure them on the vendor end
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

>= 0
>= 0
~> 2.11.0

Runtime

~> 1.5.0
 Project Readme

DEPRECATION NOTICE

This software is old and while it served it's purpose it is no-longer being updated.

The replacement is a suite of ruby gems called vcloud-tools and you should definitely check those out instead.

Vcloud Network Configurator

This is ruby gem which provides a dsl to configure firewall, nat and loadbalancer rules. It is a wrapper around the network components of vcloud api.

Installation

gem install vcloud-net-spinner

Usage

Usage: vcloud-net-spinner [options] API_URL
    -u, --username=U                         Vcloud Username
    -p, --password=P                         Vcloud Password
    -U, --organization-edgegateway-uuid=U    UID: This is required to configure edgegateway services. For more info refer to docs/find_organisation_edgegateway_uuid
    -c, --component=c                        Component: lb|firewall|nat
    -o, --organization=o                     Organization: Name of vcloud organization
    -r, --rules-files file1,file2,file3      Rules Files: files which will contain the rules for the component provided
    -i, --interfaces-files file1,file2,file3 Interfaces Files: files which will contain interfaces

Example

  vcloud-net-spinner -u username -p password -e preview -U 1yenz127ynz1872eyz12yz817e -c firewall -o development -d . http://vcloud.vendor.com/api

Rules Files & Interfaces Files

  • You can pass multiple files containing component rules via --rules-files.

  • You can specify various files containing network interfaces rules via --interfaces-files.

    A particular interfaces.yaml file looks as follows:

      interfaces:
        Network-1: "https://localhost:4567/api/admin/network/<vdc-network-uuid>"
        Network-2: "https://localhost:4567/api/admin/network/<vdc-network-uuid>"
    

    To find the urls for network, follow the document a docs/find_network_url

DSL

Firewall

firewall do
  rule "<description>" do
     source      :ip => "172.10.0.0/8"
     destination :ip => "172.10.0.5", :port => 4567
  end
end

NAT

nat do
    snat :interface => "<key-from-interfaces.rb>", :original => { :ip => "internal-ip" }, :translated => { :ip => "external-ip" }, :desc => "description"
    dnat :interface => "<key-from-interfaces.rb>", :original => { :ip => "external-ip", :port => 22 }, :translated => { :ip => "internal-ip", :port => 22 },  :desc => "SSH"
end

Load Balancer

load_balancer do
  configure "description-1" do
    pool ["<ip-1>", "<ip-2>"] do
      http
      https
    end

    virtual_server :name => "description-1", :interface => "<key-from-interfaces.rb>", :ip => "<vse-ip>"
  end

  configure "description-2" do
    pool ["<ip-1>", "<ip-2>", "<ip-3>"] do
      http :port => 8080, :health_check_path => "</router/healthcheck>"
      https
    end

    virtual_server :name => "description-2", :interface => "<key-from-interfaces.rb>", :ip => "<vse-ip>"
  end
end