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.
Info | ||
---|---|---|
| ||
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
Note |
---|
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:
Code Block |
---|
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:
Code Block |
---|
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.
Congratulations! Now that you have a running OpenNaaS instance, try loading some resources.
This tutorial describes the first steps to use Mantychore. we are going to add a router and we will do the first operations to manage it (In this case, we only do a simple operation, to configure an IP). You can find more infomation about the Karaf platform and others commands related with the resources on Server Console
Creating resources
The first step in Mantychore is the resource virtualization. In this step, it is added a new device to the Mantychore system. For this action, it is necessary to create a file to describe what features and capabilities this virtual resource will be able to have.
For this tutorial, can you use this template as example (for more information, the wiki has a section to describe each parameter). The command will be:
Code Block |
---|
resource:create /home/carlos/Escritorio/resource.descriptor
|
Resource descriptor: to get more information about how it works, you can use this link.
Adding protocols
Each resource has to be linked to the necessary protocols which are used to connect with the physical device (the real router which we want to virtualize). In this case, we will use a netconf protocol to connect with the router:
Code Block |
---|
protocols:context router:junos20 netconf ssh://myuser:mypassword@193.1.190.254:22/netconf |
Description of the connection parameters:
- router:junos20 - specify resource type (router) and resource name (junos20). It specifies what resource will use this protocol
- netconf - name to describe which protocol it will be used
- ssh://myuser:mypassword@1.1.1.1:22/netconf - URI to describe connection parameters.
Panel |
---|
The format is: transport://user:password@ip:port/subsystem The parameters are quite easy to understand. The subsystem param specifics any extra necessary parameter to specify in the connection. |
...
Resources states
A resource is in a set of states which it permits do or not a set of operations. This picture describes these states:
Mainly, a resource will activate all its capabilities if it is started. For this reason, the next step will be start our resource:
Code Block |
---|
resource:start router:junos20
|
Doing operations with the resource
Now, we have a started resource with a set of available operations. These operations will be send to the real device. In this case, we will be execute an ip configuration:
Code Block |
---|
chassis:setInterface router:junos20 fe-0/1/2.0 192.168.1.1 255.255.255.0
|
To get the configuration result:
Code Block |
---|
chassis:listInterfaces router:junos20
|
Removing a resource
Finally, if you don't need more our resource, you can stop and remove it. First, we need to stop it:
Code Block |
---|
resource:stop router:junos20
|
The resource will deactivate all its capabilities and it will be reset. After, we will destroy it and we will delete any resource information in Mantychore.
...