You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 59 Next »

System requirements

We have successfully tested OpenNaaS to both build and run in

  • Windows 7,
  • GNU Linux Systems (Ubuntu +10.10 and Debian)
  • MAC OSX systems

There's a limitation by using Windows XP. The reason is that OpenNaaS uses Fuse 4.4 version,  which requires at least either a Windows 2003 Server, a Windows 2008 Server or Windows 7, in case you're using a Microsoft OS.

Although not tested, there is no reason to believe OpenNaaS should not be able to run in other systems.

Build only

Note that you will need internet connectivity for the build too, as the dependencies are fetched during build by Maven.

Run OpenNaaS

To start OpenNaaS, launch the executable named opennaas in the following folder:

/platform/target/opennaas-${project.version}/opennaas-${project.version}/bin

Notice that there is a .sh and a .bat file.

Please use .bat if you are using Windows, and .sh if you are in a GNU-Linux or Mac OS box.

So, for version 0.10 on linux, you will run it as follows:

cd opennaas/platform/target/opennaas-0.10/opennaas-0.10/
./bin/opennaas.sh

By default, OpenNaaS will open a CLI prompt on the terminal. To avoid this you can execute it this way:

cd opennaas/platform/target/opennaas-0.10/opennaas-0.10/
./bin/opennaas.sh server

Please note that you will have to configure Karaf's SSH daemon to login the CLI via regular SSH.

Creating resources

First step in OpenNaaS is registering existing infrastructure. For this tutorial, let's assume there is a single router device to be registered.

In order to register a resource, a resource descriptor file is required. This file describes resource device type and name, all capabilities OpenNaaS should load for it, and what drivers will it use. More information about the Resource descriptor concept is available in System Architecture section.

A descriptor from the project examples directory, or a custom one can be used.

The CLI command to register a device with this descriptor will be:

resource:create /path/to/descriptor/resource.descriptor

Note: For this guide, we used a router descriptor, specifying junos20 as name.

Registering protocol contexts

Each resource can use many different protocols to communicate with the physical device it represents. Required protocols are determined by the driver in use. For a resource to be able to use a required protocol, a Protocol Context is needed. Protocol Context stores all required information to communicate with the device using a protocol known to OpenNaaS.

In this example we're going  to use netconf protocol. Hence, we introduce all netconf Protocol Context required data:

  • protocol type
  • authentication type
  • uri
  • authentication parameters

The following command illustrates how to register a protocol context for our resource using password authentication:

protocols:context router:junos20 netconf password ssh://myuser:mypassword@193.1.190.254:22/netconf

and the following, using key authentication:

protocols:context router:junos20 netconf publickey ssh://myuser@193.1.190.254.22/netconf privateKeyPath {key-passphrase}

Notice that only one context per protocol type is registered in a resource. Last one lasts.

Starting resources

A resource will populate its model and enable all its capabilities when started. Hence, in order to operate with it using opennaas, it must be started.

To start it, we use the following command:

resource:start router:junos20
 

Doing operations with resources

A resource includes a set of capabilities or features. These capabilities determine the set of available operations for this resource.

OpenNaaS supported capabilities are specified in this section.

Please, remember that capabilities to load for a particular resource are specified in the resource descriptor.

Removing resources

Finally, if the resource isn't needed anymore, it can be stopped and removed. First, we stop it:

resource:stop router:junos20

The resource will deactivate all its capabilities and it will be reset. After, we'll destroy it and delete any resource information in OpenNaaS.

resource:remove router:junos20
Notice that stopping and removing a resource causes no changes in real device configuration (e.g. resource:remove router:logicalrouter1 does not delete the logical router, but only removes it from OpenNaaS.)

 

 

  • No labels