/switchboard

Web app for on demand SDN network link configuration via Ryu REST Router controller

Primary LanguageRubyMIT LicenseMIT

Switchboard

On demand configuration of SDN network links for SDN controllers running the Ryu REST Router.

Switchboard allows authorized users to create, approve and manage SDN connections between hosts and is currently used in production at Duke University, where we have begun deploying Software Defined Network (SDN) infrastructure for on-demand configuration of bypass networks both on campus and between higher education institutions over Internet2. These SDN connections can provide very-high-speed paths for moving large volumes of data, and can be configured by on-the-fly Switchboard—a web application developed at Duke.

Switchboard enables real-time, self-service provisioning of high-speed network links by authorized users; this simplifies setting up both long term networks and one-time connections for data migrations.

Building Switchboard

To make this run a development version on your Mac:

You should probably run Ruby 2.1.2. Ruby Version Manager (RVM - see rvm.io) can be nice if you need to have multiple versions of Ruby on your system.

1.) check out this github project:

git clone https://github.com/mccahill/switchboard.git

2.) run bundle

bundle install

3.) set up the database

rake db:setup
rake db:migrate
rake db:seed

4.) for development Switchboard is set to run as user ‘liz’. You can change this by editing line 11 in

app/controllers/application.rb    

netid = 'liz'

5.) We use Capistrano deploy the application. You will need to edit the capistrano configs to suit your situation.

To deploy a staging instance, from within your Switchboard application directory type:

cap staging deploy

The production deployment command is:

cap production deploy

6.) Two config files are are specific to your instance of Switchboard:

config/database.yml
config/switchboard.yml

Examples of what these files should contain are found here:

config/database_example.yml
config/switchboard_example.yml

You should edit and rename these file to match what you have for database and SDN controller settings.

7.) You are now ready to start your server:

rails s

or run a rails console:

rails c

8.) next: see the README-SDN-SETUP to configure an SDNHub setup so switchboard has something to talk to.