2 Installing and Integrating the Solution Components

This chapter describes the software requirements and instructions for installing and integrating Oracle Communications Network Service Orchestration Solution components.

Planning Your Implementation

Before you implement the Network Service Orchestration solution, you must identify the required software, ensure that the required network infrastructure is available and ready, and identify the third-party software that you want to use with the solution. Your choices are based on the network services you want to deliver on your network.

Use the following list of tasks as a checklist to ensure that you have all the required components for a successful implementation of the solution:

Software Requirements

To implement the Network Service Orchestration solution, you require the following software:

  • Oracle Communications Unified Inventory Management 7.3.3.

    See UIM 7.3.3 Installation Guide for installation instructions.

  • Oracle Communications Design Studio 7.3.2.

    See Design Studio 7.3.2 Installation Guide for installation instructions.

Configuring UIM for the Network Service Orchestration Solution

To configure UIM for the Network Service Orchestration solution:

  1. Install UIM on a WebLogic server. See UIM 7.3.3 Installation Guide for installation instructions.

    Note:

    If you are upgrading to UIM 7.3.3 from UIM 7.3.1 or UIM 7.3.2, follow the steps for upgrading from UIM 7.3.x to UIM 7.3.2 in the UIM 7.3.3 Installation Guide.

    If you are upgrading the solution from 1.1 to 1.1.1, see "Upgrading the Network Service Orchestration Solution".

  2. Download and set up the gson library:

    1. Download the gson-2.2.4.jar file from the following website and copy it to the UIM_Home/lib folder, where UIM_Home is the directory into which UIM is installed:

      http://repo1.maven.org/maven2/com/google/code/gson/gson/2.2.4/

    2. Open the Domain_Home/bin/setUIMEnv.sh file and add the following entry, where Domain_Home is the directory that contains the configuration for the domain into which UIM is typically installed:

      CLASSPATH="${CLASSPATH}:${UIM_HOME}/lib/gson-2.2.4.jar"
      export CLASSPATH 
      
  3. In the WebLogic server on which UIM is installed, deploy the WL_HOME/common/deployable-libraries/jersey-bundle-1.9.war file as a library and specify the target as the server on which UIM is installed.

  4. Set up queues in the WebLogic server. See "Setting Up Queues in WebLogic Server" for detailed instructions.

  5. Restart the server on which UIM is installed.

  6. Navigate to the UIM_Home/cartridges directory and deploy the following base UIM cartridges into UIM in the order they are listed:

    • ora_uim_baseextpts

    • ora_uim_basemeasurements

    • ora_uim_basetechnologies

    • ora_uim_basespecifications

    • (Optional) ora_uim_common. Deploy this cartridge if you want to implement a network protection service by using the sample cartridges.

    See UIM Cartridge Guide for instructions about deploying cartridges into UIM.

  7. Create a local directory (NSO_Software_Home).

  8. In the UIM software pack, locate the OracleComms_NSO_1.1.1.0.0.build_number.zip file and extract it into the NSO_Software_Home directory.

  9. Navigate to the NSO_Software_Home/deploy/individualJarsForSuperJar directory and deploy the following Network Service Orchestration solution cartridges into UIM in the order they are listed:

    • OracleComms_NSO_NFVIAdapter

    • OracleComms_NSO_Common

    • OracleComms_NSO_BaseCartridge

  10. (Optional) If you want to use the sample cartridges that are provided with the solution, navigate to the NSO_Software_Home/designStudio/cartridgeZips directory and deploy the following sample cartridges into UIM in the order they are listed:

    • NPaaS_NetworkService

      This sample cartridge contains the functionality to implement Network Protection as a network service.

    • Checkpoint_NG_FW_VNF

      This sample cartridge contains the Checkpoint firewall VNF to use with the Network Protection service.

    • Juniper_vSRX_VNF

      This sample cartridge contains the Juniper vSRX firewall VNF to use with the Network Protection service.

  11. (Optional) By default, in the UIM user interface, your entities are labeled using the standard UIM names that are based on the Oracle Communications Information Model. To label your entities using the standard NFV terminology, extract and deploy the NSO_Software_Home/designStudio/cartridgeZips/NSOBranding sample cartridge into UIM.

    Note:

    After you deploy the branding cartridge into UIM, you cannot undeploy it or return UIM to its previous state.
  12. In the WebLogic server on which UIM is installed, deploy the NSO_Software_Home/deploy/applications/OracleComms_NSO_WebServices.war file as a web application.

    To deploy the .war file into WebLogic server:

    1. Copy the custom.ear file from Domain_Home/UIM/app/7_3_3/ to a temporary directory.

    2. Navigate to the temporary directory and expand the custom.ear archive file by running the following command:

      jar xvf custom.ear
      
    3. Delete the custom.ear file and copy the deploy/applications/OracleComms_NSO_WebServices.war file to the temporary directory.

    4. Open the META_INF/application.xml file in a text editor and add the following text:

      <module>
                  <web>
                      <web-uri>OracleComms_NSO_WebServices.war</web-uri>
                      <context-root>/ocnso/1.1</context-root>
                  </web>
      </module>
      
    5. Rebuild the custom.ear file by running the following command:

      jar cvf custom.ear *
      
    6. Log in to Oracle WebLogic Server Console.

    7. Click Lock and Edit.

    8. Click Deployments.

    9. In the Summary of Deployments section, select custom and click Update.

    10. Select Redeploy this application using the following deployment files and click Change Path.

    11. Browse and select the custom.ear file, which is created in the temporary directory.

    12. Click Next.

    13. Click Finish.

    14. Click Activate Changes.

  13. (Optional) If you want to use an SDN controller to control data flows for your network service, register the SDN controller with the solution. See "Registering the SDN Controller" for instructions.

  14. (Optional) Integrate the solution with northbound applications for asynchronous communication. See "Integrating the Solution With Northbound Applications for Asynchronous Communication".

After you install the required software and configure UIM, integrate the VIM with the solution. See "Integrating the VIM with the Solution" for more information.

Setting Up Queues in WebLogic Server

You set up queues in the WebLogic server to maintain fault tolerance when there is an issue in the activation of resources after a lifecycle action is performed.

To set up queues in WebLogic server, do any one of the following:

Running Scripts to Set Up Queues in WebLogic Server

The Network Service Orchestration solution includes scripts that you can run to set up queues in the WebLogic server.

Before you run the scripts, do the following:

  • Specify the WebLogic server details in the following files:

    • For standalone server, specify the server details in the NSO_Software_Home/tools/jmsWlstScripts/nso_jms_configuration_standalone.properties file.

    • For cluster setup, specify the server details in the NSO_Software_Home/tools/jmsWlstScripts/nso_jms_configuration_cluster.properties file.

  • If SSL is enabled for secure communication, open all the script files and change the protocol from t3 to t3s:

    For example, change:

    URL="t3://"+AdminServerListenAddress+":"+AdminServerListenPort

    to

    URL="t3s://"+AdminServerListenAddress+":"+AdminServerListenPort.

To set up queues in the WebLogic server:

  • If SSL is not enabled, do the following:

    • For standalone server, run the following script:

      WebLogic_Home/oracle_common/common/bin/wlst.cmd nso_jms_queue_standalone.py

    • For cluster setup, run the following script:

      WebLogic_Home/oracle_common/common/bin/wlst.cmd nso_jms_queue_cluster.py

  • If SSL is enabled, do the following:

    1. Set the WebLogic server environment by running the following command:

      WebLogic_Home/wlserver/server/bin/setWLSEnv.sh

    2. For standalone server, run the following script:

      java -Dweblogic.security.SSL.ignoreHostnameVerification=true
      -Dweblogic.security.CustomTrustKeyStoreType="JKS"
      -Dweblogic.security.TrustKeyStore=DemoTrust
      -Dweblogic.security.CustomTrustKeyStoreFileName="Weblogic_Home/wlserver/server/
       lib/DemoTrust.jks" weblogic.WLST nso_jms_queue_standalone.py 
      

      For cluster setup, run the following script:

      java -Dweblogic.security.SSL.ignoreHostnameVerification=true
      -Dweblogic.security.CustomTrustKeyStoreType="JKS"
      -Dweblogic.security.TrustKeyStore=DemoTrust
      -Dweblogic.security.CustomTrustKeyStoreFileName="Weblogic_Home/wlserver/server/
       lib/DemoTrust.jks" weblogic.WLST nso_jms_queue_cluster.py 
      

Setting Up Queues in WebLogic Server Manually

To set up queues in WebLogic server manually:

  1. In the WebLogic server on which UIM is installed, create a JDBC Store with the following parameters:

    • Name: inventoryNSOStore

    • Target: Specify AdminServer or the managed server on which UIM is installed.

    • Datasource: InventoryDatSource

    If you use cluster setup, create a JDBC Store for each managed server and specify a unique prefix name. For example, if you use managed server 1 (MS1) and managed server 2 (MS2), create a JDBC Store with the name inventoryNSOStore-0 targeting MS1 and another JDBC Store with the name inventoryNSOStore-1 targeting MS2 with unique prefix names.

  2. Create a JMS Server with the following parameters:

    • Name: NSOJMSServer

    • Persistent Server: Specify the persistent store that you created earlier.

    • Target: Specify AdminServer or the managed server on which UIM is installed.

    If you use cluster setup, create a JMS Server for each managed server and associate the JMS servers to the JDBC stores that you created earlier. For example, if you use managed server 1 (MS1) and managed server 2 (MS2), create a JMS Server with the name NSOJMSServer-0 targeting MS1 and associate it to the inventoryNSOStore-0 JDBC Store. Create another JMS Server with the name NSOJMSServer-1 targeting MS2 and associate it to the inventoryNSOStore-1 JDBC Store.

  3. Activate the changes.

  4. Create a JMS Module with the following parameters:

    • Name: NSOModule

    • Target: Specify the AdminServer or select all the servers if you use cluster setup.

  5. For the NSOModule that you created, create a Connection Factory with the following parameters:

    • Name: NSORequestQueueConnFactory

    • JNDI Name: NSORequestQueueConnFactory

    • Select Advanced Targeting

    • Create a new sub-deployment with the name NSOJMSServer

    • For the sub-deployment that you created, specify NSOJMServer as the target. If you use cluster setup, specify all the JMS servers that you created.

  6. For the NSOModule, create a JMS Queue for a standalone server setup or create a Distributed JMS Queue for a cluster setup with the following parameters:

    • Name: NSORequestQueue

    • JNDI Name: NSORequestQueue

    • Select Advanced Targeting.

    • Select NSOJMSServer as the sub-deployment.

    • Select NSOJMSServer as target. If you use cluster setup, specify all the JMS servers.

  7. Activate the changes.

Registering the SDN Controller

If your network service requires implementation of network flows, then you can set up the solution to use an SDN controller. SDN controllers are based on protocols, such as OpenFlow, that enable servers to instruct switches where to send network traffic. You should register the SDN controller with the solution to manage flow control in the network. The Network Service Orchestration solution supports OpenDaylight and provides integration points for integrating other third-party SDN controllers. See "Implementing a Custom SDN Controller" for more information about implementing a custom SDN controller.

To register your SDN controller with the solution:

  1. In UIM, create a custom object based on the SDN specification and specify the following details about the SDN controller that you want to use:

    • Host

    • Port number

    • Username of the SDN controller

    • Password of the SDN controller

    • Type of the SDN controller

  2. Associate the VIM custom object as a parent custom object to the SDN controller custom object.

Integrating the Solution With Northbound Applications for Asynchronous Communication

Some VNF and network service lifecycle operations perform long-running processes. The Network Service Orchestration solution supports integration with northbound applications in asynchronous communication for such lifecycle operations.

With this integration, the solution provides the final and actual status of the following network service life-cycle actions so that northbound systems can perform and complete service fulfillment:

  • Instantiate a network service

  • Terminate a network service

  • Add one or more VNFs to network service

  • Delete one or more VNFs from a network service

  • Scale a VNF

  • Configure a VNF

  • Upgrade the software version of a VNF

To integrate the solution with northbound systems for asynchronous communication, you must set up a topic in the WebLogic server. After you set up the topic in the WebLogic server, you can configure your client applications to subscribe to the topic.

Note:

You can also customize the solution's asynchronous communication functionality. For information about writing your own implementation for asynchronous communication, see "Implementing a Custom Response Manager".

To set up topics in the WebLogic server, do any one of the following:

Running Scripts to Set Up Topics in WebLogic Server

The Network Service Orchestration solution includes scripts that you can run to configure the WebLogic server for asynchronous communication with northbound applications.

Before you run the scripts, do the following:

  • Specify the WebLogic server details in the following files:

    • For the standalone server, specify the server details in the NSO_Software_Home/tools/jmsWlstScripts/nso_jms_configuration_standalone.properties file.

    • For cluster setup, specify the server details in the NSO_Software_Home/tools/jmsWlstScripts/nso_jms_configuration_cluster.properties file.

  • If SSL is enabled for secure communication, open all the script files and change the protocol from t3 to t3s:

    For example, change

    URL="t3://"+AdminServerListenAddress+":"+AdminServerListenPort

    to

    URL="t3s://"+AdminServerListenAddress+":"+AdminServerListenPort.

To set up topics in the WebLogic server:

  • If SSL is not enabled, do the following:

    • For a standalone server, run the following script:

      WebLogic_Home/oracle_common/common/bin/wlst.cmd nso_jms_topic_standalone.py

    • For a cluster setup, run the following script:

      WebLogic_Home/oracle_common/common/bin/wlst.cmd nso_jms_topic_cluster.py

  • If SSL is enabled, do the following:

    1. Set the WebLogic server environment by running the following command:

      WebLogic_Home/wlserver/server/bin/setWLSEnv.sh

    2. For standalone server, run the following script:

      java -Dweblogic.security.SSL.ignoreHostnameVerification=true
      -Dweblogic.security.CustomTrustKeyStoreType="JKS"
      -Dweblogic.security.TrustKeyStore=DemoTrust
      -Dweblogic.security.CustomTrustKeyStoreFileName="Weblogic_Home/wlserver/server/
       lib/DemoTrust.jks" weblogic.WLST nso_jms_topic_standalone.py 
      

      For cluster setup, run the following script:

      java -Dweblogic.security.SSL.ignoreHostnameVerification=true
      -Dweblogic.security.CustomTrustKeyStoreType="JKS"
      -Dweblogic.security.TrustKeyStore=DemoTrust
      -Dweblogic.security.CustomTrustKeyStoreFileName="Weblogic_Home/wlserver/server/
       lib/DemoTrust.jks" weblogic.WLST nso_jms_topic_cluster.py 
      

Setting Up Topics in WebLogic Server Manually

To set up topics in the WebLogic server:

  1. In the WebLogic server on which UIM is installed, for the NSOModule, create a Connection Factory with the following parameters:

    • Name: NSOResponseTopicConnFactory

    • JNDI Name: NSOResponseTopicConnFactory

    • Select Advanced Targeting

  2. For the sub-deployment that you created, specify NSOJMSServer as the target. If you use cluster setup, specify all the JMS servers that you created.

  3. Create a JMS topic for a standalone server setup or create a Distributed JMS topic for a cluster setup with the following parameters:

    • Name: NSOResponseTopic

    • JNDI Name: NSOResponseTopic

    • Select NSOJMSServer as the sub-deployment.

    • Select NSOJMSServer as target. If you use cluster setup, specify all the JMS servers that you created.

  4. Activate the changes.

Integrating the VIM with the Solution

The Network Service Orchestration solution supports OpenStack and provides integration points for integrating other third-party VIMs. See "Implementing a Custom VIM" for more information about implementing a custom VIM.

Before you integrate the VIM with the solution, ensure that you set up and configure the VIM to use with the solution. After your VIM infrastructure is set up, you register the VIM and discover the VIM resources into the solution.

Integrating the VIM with the solution involves the following tasks:

Registering the VIM

To register a VIM with the solution:

  1. Ensure that UIM is started and running.

  2. Ensure that the Network Service Orchestration solution cartridges are deployed into UIM.

  3. Start the VIM and ensure that you have the IP address, username, and password of the VIM instance.

  4. In a RESTful API client, call the following RESTful API using the POST method:

    POST http://nso_host:port/ocnso/1.1/vim

    where:

    • nso_host is the IP address of the machine on which UIM is installed

    • port is the port number of the machine on which UIM is installed

  5. Specify the VIM details in the request. For details about the request parameters, see "Register a VIM" in the "Network Service Orchestration RESTful API Reference" chapter.

    The RESTful API client returns a response.

  6. In UIM, verify that a custom object with the details of the VIM is created.

Discovering VIM Resources

You discover VIM resources into UIM so that the solution contains information about the current status and availability of all the required virtual resources on the network. In UIM, the VIM is represented as a custom object.

When you discover a VIM, the details of the following resources are populated into UIM:

  • Availability zone (OpenStack)

  • Flavor

  • Host

  • VDC

To discover VIM resources into UIM:

  1. In a RESTful API client, call the following RESTful API using the POST method:

    POST http://nso_host:port/ocnso/1.1/vim/vimId/discovery?infoLevel=vim_information

    where:

    • nso_host is the IP address or the domain name of the machine on which UIM is installed

    • port is the port number of the machine on which UIM is installed

    • vimId is the Id of the VIM that you registered with the solution and whose resources you want to discover

    • vim_information is the level of information about the VIM that you want to retrieve and view in the response. The available values are:

      • summary. Retrieves and displays a summary of the VIM resources.

      • details. Retrieves and displays complete details about all the VIM resources.

    For more details about the request parameters, see "Discover VIM Resources" in the "Network Service Orchestration RESTful API Reference" chapter.

    The RESTful API client returns a response.

  2. In UIM, verify that the following entities are created as Custom Objects:

    • Availability zone

    • Flavor

    • Host

    • VDC

Note:

Whenever you add, upgrade, modify, or delete the compute, memory, and network resources in your NFV Infrastructure (NFVI), run the VIM discovery RESTful API to ensure that details about the currently available resources on your NFVI are reflected correctly in the solution.

Enabling Logging for the Network Service Orchestration Solution

You enable logging for the solution to log debug messages.

For more information about logging, see the chapter about improving UIM performance in UIM System Administrator's Guide.

To enable logging for the Network Service Orchestration solution:

  1. Open the UIM_Home/config/loggingconfig.xml file in a text editor.

  2. Add the following text:

    <logger name="oracle.communications.inventory.nso" additivity="false">
            <level value="debug" />
            <appender-ref ref="stdout"/>
            <appender-ref ref="rollingFile"/>
    </logger>
    
  3. Save and close the file.

Upgrading the Network Service Orchestration Solution

If you are using Network Service Orchestration Solution 1.1, you can upgrade to Network Service Orchestration Solution 1.1.1.

To upgrade to Network Service Orchestration Solution 1.1.1:

  1. Upgrade UIM to UIM 7.3.3. See UIM 7.3.3 Installation Guide for instructions.

  2. Follow steps from 4 to 12 in the "Configuring UIM for the Network Service Orchestration Solution" section.

  3. In your network service properties file, add or update the following parameters and specify values for the parameters:

    • NSD_Name.default.serviceArea.default_service_area

      where:

      • NSD_Name is the name of your network service descriptor file.

      • default_service_area is the name of the default service area

    • NSD_Name.default.dataCenter.default_data_center

      where default_data_center is the name of the default data center

    • sdnController.NSD_Name

  4. Update your VIM by running the following RESTful API:

    PUT http://nso_host:port/ocnso/vim/vimId

    where vimId is the Id of the VIM that you want to update

    For more details about the request parameters, see "Update a VIM" in the "Network Service Orchestration RESTful API Reference" chapter.

    Specify values for the following parameters:

    • version. For OpenStack Keystone version 2.0, specify 2. For OpenStack Keystone version 3.0, specify 3.

    • cpuOvercommitRatio. Specify the ratio of overcommitted vCPU.

    • memoryOverCommitRatio. Specify the ratio of overcommitted memory.

    • diskOverCommitRatio. Specify the ratio of overcommitted disk.

  5. Discover the VIM resources by running the following RESTful API:

    POST http://nso_host:port/ocnso/vim/discover/vimId?infoLevel=vim_information

    where:

    • vimId is the Id of the VIM whose resources you want to discover

    • vim_information is the level of information about the VIM that you want to retrieve and view in the response. The values are:

      • summary. Retrieves and displays a summary of the VIM resources.

      • details. Retrieves and displays complete details about all the VIM resources.

    For more details about the request parameters, see "Discover VIM Resources" in the "Network Service Orchestration RESTful API Reference" chapter.

Supported Southbound Integration

The Network Service Orchestration solution supports the following southbound integrations:

  • For VNF management:

    • VNF Manager, with the ability to manage VNFs through direct integration or by integration with an Element Management System (EMS)

    • Integration with external VNF Managers

  • For virtual infrastructure management:

    • Integration to OpenStack Kilo with Keystone version 2 and version 3, and Oracle OpenStack for Oracle Linux Release 2

    • Sample integration to VMware vCloud Director

    • Integration with other Virtual Infrastructure Managers

  • For network and SDN controllers:

    • Integration to OpenStack Neutron (Kilo release)

    • Sample integration to OpenDaylight