VNF Life Cycle Management for VMware
Virtual Multimedia Resource Function

Contents
This document contains information for system administration
tasks performed in the VNF Lifecycle Manager (VNF-LCM). VNF-LCM provides a workflow
execution environment and a web-based application for managing VNF life cycle
procedures.
VNF life cycle procedures are realized by executing ordered
sequences of steps, called workflows. Each workflow must be provided with VNF-specific
input parameters during execution.
This document covers the following life cycle management procedures, available in VMware
deployments:
This section provides information on the tools and conditions that apply to the
procedures in this document.
Before performing any
VNF-LCM procedure, ensure that the following conditions are met:
The software delivery package including vIMS workflows, VNF-specific Open
Virtualization Format (OVF) files, example environment files, and the
VNF-LCM scripts is available.
VNF-LCM is available using either Operations Support System, Radio and Core
(OSS-RC) or Ericsson Network Manager (ENM).
The vCD is used as Virtual Infrastructure Manager (VIM).
The VIM is configured in VNF-LCM.
| Note: |
The VIM configuration in VNF-LCM can be checked with the vnflcm
vim list command.
For more information on configuration and the command, refer to
VNF-Lifecycle Manager System Administration Guide,
Reference [1].
|
The following minimum version requirements are met:
VNF-LCM: 18.12 or higher (minimum SW media version: 4.7.13)
The workflow bundle RPM is installed as described in the relevant network
management system documentation. For more information, refer to
VNF-Lifecycle Manager System Administration Guide,
Reference [1].
The cloud environment is prepared for the deployment of the
VNF, that is, the
following activities are performed:
Cloud hardware and software preparation and configuration
Network topology creation
For detailed instructions, refer to the relevant deployment instructions.
This section describes how to prepare for
workflow-based VNF operations using VNF-LCM. Performing this procedure is a prerequisite
for life cycle operations.
Steps
-
Create a directory for the VNF-specific files in
/vnflcm-ext/backups/workflows/vnfd/<VNFType__VNFVersion>.
| Note: |
Follow the naming convention as above: VNF type and VNF version separated
by "__".
|
-
In
/vnflcm-ext/backups/workflows/vnfd/<VNFType__VNFVersion>,
create a configurations subdirectory with write permission
for the jboss_user, and a child directory for each VNF
configuration. This allows for storing multiple VNF configurations.
| Note: |
Each directory in configurations must contain a
VNF-specific env-vcd.yaml environment file. Each
env-vcd.yaml file can be used for a different
VNF instantiation, depending on, for example, network needs.
In the current release, the env-vcd.yaml must be
created by the user. Create the file based on Example 1, providing
attribute and value pairs based on your network needs.
Provide data containing multiple line breaks, for example, private key
file contents, according to the following:
Using vIMS worfklow version 1.12.0: the attribute value must
be corrected manually after it is imported to the VNF.
Using vIMS worfklow version higher than 1.12.0: replace line
breaks with \n and provide the whole string
in quotes.
|
-
Create a vApp template in vCloud Director by uploading the release-specific OVF files provided in the software
delivery package.
-
Copy the lcmScripts directory and its content into the
directory created in
/vnflcm-ext/backups/workflows/vnfd/<VNFType__VNFVersion>.
| Note: |
The lcmScripts is provided in the software delivery
package.
|
The example below shows a directory structure with two configurations
stored.
Example
`-- vMRF__<version_number>
|-- vnfLcmOperationsConfiguration.json
|-- configurations
| |-- example_config_1
| | `-- env-vcd.yaml
| `-- example_config_2
| | `-- env-vcd.yaml
`-- lcmScripts
Depending on the vIMS workflow version, store the private and public
SSH keys:
If using vIMS workflow version 1.12.0 or lower, continue with the
next step.
If using vIMS workflow version 1.13.0 or higher, continue with Step 6.
-
Add the private SSH key to the /home/jboss_user/.ssh/
folder, and the public SSH key in the admin_authorized_key
parameter of the env-vcd.yaml file.
| Note: |
If the SSH key is not available yet, create it using the
ssh-keygen -t rsa command, as
jboss_user:
sudo -u jboss_user bash -c 'ssh-keygen -t rsa -f ~/.ssh/id_rsa
&& cat ~/.ssh/id_rsa.pub'
|
-
If missing, add the private SSH key to the
/vnflcm-ext/backups/private_keys/workflows/default/.ssh
folder, and the corresponding public SSH key in the
admin_authorized_key parameter of the
env.yaml file of each configuration stored.
The public key can be obtained by using the following command:
sudo -u jboss_user cat
/vnflcm-ext/backups/workflows/private_keys/default/.ssh/id_rsa.pub
If the SSH key or the .SSH folder is not available,
create them using the following command, as jboss_user:
sudo -u jboss_user bash -c 'cd
/vnflcm-ext/backups/workflows/private_keys/default
&& mkdir .ssh && chmod 0700 .ssh && ssh-keygen -P ""
-t rsa -f .ssh/id_rsa'

Example 1 env-vcd.yaml File Example
# Format: <network name in the OVF>: <organization vDC network name>
org_networks:
nbi: "vmrf-net-oam" # The operation and maintenance network
mrfSignalling: "vmrf-net-signaling" # The vMRF Signalling network
trustedMedia: "vmrf-net-trusted" # The trusted Media network
# Definitions of vApp network. Based on these definitions,
# the workflows create these networks as part of vApp creation,
# and maps networks declared in OVF to these networks.
# The vApp networks are available only for the vApp the networks belongs to.
# These vApp networks will be isolated, i.e. not connected to any organization vDC networks.
vapp_networks:
- network_name: "clusterInternal" # Name of the vApp network
default_gateway: "192.0.2.1" # Default gateway of the network.
start_address: "192.0.2.100" # The first valid IP address of the IP address pool range.
end_address: "192.0.2.199" # The last valid IP address of the IP address pool range.
subnet_mask: "255.255.255.0" # The subnet mask of the network.
product_section_parameters:
# Management IP address of the instance
OAM_IPaddress: "172.16.3.2"
# (optional) Specifies public OAM IP address of the VNF,
# when OAM_IPaddress resides beyond NAT.
Public_OAM_IPaddress: "191.0.6.1"
# Username for the O&M ssh connection
Username: "DummyAdmin"
# Password has for the user above. Generated with: mkpasswd -m sha-512 MySecretPassword
Passwd: "$6$xgizwdYh$MaZx9Hf9gZu7NC398yzbQOcZOGJIWh3oxFr2tyRKY/bZOEDyweHHDPv5YbJbEfsY6bVBts/ZkZXSPncrqHv2w0"
# Public key of jboss_user of the VNF-LCM machine
Ssh_a_key: "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCvdTLIPOAIiL2xCDndQud3b9rCLdV5BzHLA5nP8d1JwW17VQWwZicusl ⇒
DKMsYyPEelQduXNh845/hqWt+HhHc3umcnsReBHXR5A0yq2oGXU+LxB0bnZlNw+pEByAtOp8TmSkm7fS1otGjdrZn0ze83iilpCiPMIEvbby0 ⇒
yIfUK3ZIlVjBFEx7rBh8WP4O1hgLHOMa1D+Lz7lT3dDLlqSQ1+o6O6O4M/FeG/6goKsgwAexFw+llBkEHF0CzcC9BiXWlL1/+MJ2VBq3qgBTm ⇒
gIQ9/y+4+DQ4FF8iMIILEPrRNsdkGd9CyHol3cAbXLIX02mw0mrFzJFr9wMbVF2PdTUZ"
# Multiple NTP addresses can be provided with a space delimiter
Ntp_addresses: "192.0.7.2"
# Initial configuration. .tar.gz formatted configuration in base64 string
Init_config: "qp2ZD2GjpDrSxo29sbgmdJFkmd8aXWvWULg9FxqjJif4N2BPi2mZHA+kYTA8P/cJPfHRPzZJl3cda+oBuTABH4cjRd2I ⇒
7YaqaQtTA0/KgCMtvWxVkHYN6Op+nfsRsTyEITRoghRmVcUlDYP2176tOcGeh2quZRaqAW9wJ+Sl3wBtwB8IYmIHQDf2anaWlIo9tpwVS47yO ⇒
8vmFMyAQBgT0960hrxdIOVktB13guG3bEknfsHwerUrBFvnhyhQ9aHrb2QGIT+G3p4dXN54J42lej/nWVdQ4i+yCJemtANrBW0dRxN7pJXRCX ⇒
nzYYpMZ0AGhI8TOBk5/97CLfjfcDN7VA=="
# Shared storage configuration
Shared_storage_server_username: dummy_user
Shared_storage_server_path: "/home/vmrfvmware1/shared_storage/"
Shared_storage_server_ip: "192.168.71.89"
Shared_storage_server_port: 22
Shared_storage_server_fingerprint: '131.160.94.101 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBKFUShoQyxnvoFm2fv0gOq8/MQ37wKdT7zuQPNfVi6p3Fv0B+vRDRNGUMV/erDZPvZgTQDbiBpg9fBlLfeFmH8Y=\n13⇒
1.160.94.101 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHVgKoWKydPJzs99OCFW/gfDXG5l73Zgk+yecHAjnOFU\n'
Shared_storage_ssh_private_key: '-----BEGIN RSA PRIVATE KEY-----
\nMIICXQIBAAKBgQDF60kPVTtczzKVaKAQuQw+/zWYgJgMr7GuU75/YR+6NhHVVns9\nDhLQuW9yB53intRX8DHiG+1Zk20ng5lGRGw1SmIT8uqJA2xYTbYrcFPvBVyW0BN3\nKyCNebZogcN6YDb442w/2H/NvA5EfSUNrhTdoUhPY7XDHvs8oRAjySZEJQIDAQAB\nAoGBAMT2Narwozbla+⇒
2MRV7fCPTYfbnan3Zgkm5uILIbMbvaezzX56UHEGpvYB0W\nv2T7s04gV0Qxjq8KLCKasDphdVyDHnrolC/dW85mQzdS3rvoXTv0pxD9ys1XL9Ji\nFXUMm+vY0ireglqS0TRCmsFTETVsm7jYst72bdKhpwFsgTYxAkEA5gTs23J+q20+\nSd0erxGks7vyoJoZRVLdXsNfIuOl2qcGpAe3G2⇒
EPx36RNWik1TZgBtJ0McyXK9gF\nBEfmX+VBmwJBANxGLLNVVxEn/Lmf0ITRoHjf8gGlxxLFZr5no7uCVftMTkxGa+DR\nlaGdiUgV00pwJOcnYN5+fJljphWr00K2zT8CQQDjLD4ZxgygljYMkVx6nzxBXwCT\n6V3H/70umFpfhOIK/ycp3YzUd5oz9ybGzuDsytUwJ64meN9cp+7ceX5ne2⇒
69AkAa\nncQi+0nlAc7w4xXAJtBcKrtEZbKzWvT6Ru2q56naDrNbVhsM9GY/PBjtg+2fDgP3\nhnOXDvOhWUAlWDjT0+DjAkBu+yu5aEoq2idarcXI3UVK8PPLAfczXKwjjL2N3zMB\n6j6Ul4mJzY/wT7IC/qzyMbMcYS5h9I6w6IqBM9hBon6U\n
-----END RSA PRIVATE KEY-----\n'
# Announcement storage configuration
announcement_storage_server_username: vmrf_vnf_user
announcement_storage_server_path: "/home/vmrfvmware1/announcement_storage/"
announcement_storage_server_ip: "192.168.37.82"
announcement_storage_server_port: 22
announcement_storage_server_fingerprint: '131.160.94.101 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBKFUShoQyxnvoFm2fv0gOq8/MQ37wKdT7zuQPNfVi6p3Fv0B+vRDRNGUMV/erDZPvZgTQDbiBpg9fBlLfeFmH8⇒
Y=\n131.160.94.101 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHVgKoWKydPJzs99OCFW/gfDXG5l73Zgk+yecHAjnOFU\n'
announcement_storage_ssh_private_key: '-----BEGIN RSA PRIVATE KEY-----
\nMIICXAIBAAKBgQDDVNOOGLJgwrPcGO4MayJXolfRwDv7Csbro4bSIOleUpipB5p0\nVZq1OxbuwTBq0VZXTymiIjMpzXAS9S4iX3wpI10xN8lbHvE07NRV94qB337OL0wc\n1QfLEB5GdZzT5joqwOW1OW8AgBrYMN1VbkYw2Odz1zRYIIVcVmzowdngJwIDAQAB\nAoGBAIOh9ZNr10HX1⇒
Cd98WYTCKiv8aibeJBcGeOQZvnSThJPbStzwUWmrsR1FqY9\nMKi7fAkIgxENJReFp4JPEhD98ggFKX+SBhVV3q060b3tKjMvcaCzl1E6nZb5SqNy\nHgrA8NxPZz9XUb6Xj049+TF2XIWZicTm90yQnqYydJznV86BAkEA7Xu1NDSRPHrc\nt2B5TP0aFgJs8PdNk41OMW/ceYN+4eANlZFR⇒
ZerJcwWGuH/pqmQbnsphFUytmFhq\nsiQWW3IowQJBANKPvphAHK/mWsAk8GXaJ3RR3LHlGIL6tpvipDkajNNFGy32u4L2\neCM7aeOUSZ7ywm+fzEYyMB4GJjzyUEsTmucCQFFnw3CWyGZD817Eqi/y3rtGr5NW\nInh+ypv1rUzV/2tsAxwPCSj3d4B/F3QtHKr0z+b5lpfXhfYf8MsJxcQ⇒
o+MECQGMo\nnHo4nwnbMluQScG9ZZ0qvALuv4dXKE3rAql9rloEDlOsAQwgo9z7qtcoyy7WZeiJ\nWXqpQe2xuaoz9soUVnsCQCnT7efEjD60l+9eKO+ymMhbuOgYpmEjqI+NScUxMT4S\nK1b5QBJSACQI5O5/zizKY/Wqz18pa5vB0Deex3tsunI=\n
-----END RSA PRIVATE KEY-----\n'
# PM data monitoring configuration (Grafana)
Pm_data_monitoring_hosts_ip_address:
Pm_data_monitoring_hosts_port:
The
following sections describe how to perform LCM operations.
VNF-LCM procedures utilize workflow instances. Figure 1 shows an example of a workflow
instance, where workflow progress can be tracked in the Workflow
Diagram view. The Workflow Diagram only
represents stages of the various procedures, operations are performed in the
Task view.
It is not recommended to execute a workflow instance on a VNF while another one is in
progress, as it can lead to unexpected behavior. If a new workflow procedure is needed,
the ongoing one must be terminated before starting a new one.
Figure 1 Workflow Instance Overview
This section describes how to instantiate a
VNF using
VNF-LCM.
| Note: |
When instantiating a VNF on a VIM running on BSP, make sure there are no active
Capture Jobs on BSP, or the instantiation fails.
|
Steps
-
In the VNF-LCM Workflows screen, select
Instantiate VNF, and click the Start a New
Instance button.
Figure 2 Select Workflow
-
On the Start a Workflow screen, fill out the
Instance Name field, and click
Submit.
-
Select the newly created workflow from the Instance
Activity panel.
-
On the Get VNF name and VNFD screen, add VNF
Name and VNF Instance Description, select
VNF to instantiate, and click Submit.
Select the Add Network Element in ENM/OSS-RC check box
to add the new VNF in the network management application.
| Note: |
The VNF Name is also used as the Heat stack name.
It is not recommended to add version information in this field, as the
name is unchanged after VNF upgrades.
The Select VNF descriptor Id field displays VNF
releases available for instantiation in the
/vnflcm-ext/backups/workflows/vnfd/
directory.
|
Figure 3 Get VNF name and VNFD
-
On the Select VIM screen, select the VIM to be used, and
click Submit.
Figure 4 Select VIM
-
On the Select Tenant screen, select the tenant to be
used, and click Submit.
Figure 5 Select Tenant
-
On the Select VDC screen, select the virtual Data Center
(vDC) in which the new VNF is instantiated, and click
Submit.
Figure 6 Select vDC
-
On the Get Instance Configuration screen, select a VNF
configuration to instantiate, and click Submit.
| Note: |
The Select Configuration for the VNF instance
field displays VNF configurations available for instantiation in the
/vnflcm-ext/current/vnf_package_repo/<VNFType__VNFVersion>/configurations
directory.
|
Figure 7 Get Instance Configuration
-
If the ENM network management application is used, provide VNF-related
parameters for ENM, and click Submit.
This step is optional. It is only required if the Add Network
Element in ENM/OSS-RC check box was selected in Step 4.
| Note: |
To fill out the Network element version supported by
OSS/ENM field, check the supported VNF version with the
following command:
cmedit describe --netype
<VNF_type>
|
Figure 8 Get OSS/ENM Parameters
This section describes how to scale a VNF using VNF-LCM.
Continue with this procedure only if the VNF to be scaled was instantiated using the
VNF-LCM.
Steps
-
In the VNF-LCM click Start a Workflow, select
Scale VNF, and click the Start a New
Instance button.
Figure 9 Select Workflow
-
On the Start a Workflow screen, fill out the
Instance Name field, and click
Submit.
-
Select the newly created workflow from the Instance
Activity panel.
-
On the Workflow Instance screen, specify the following
details and click Submit:
VNF instance to be removed
Number of VMs to be added or removed
Figure 10 VNF Scaling Details
-
If Scale In was selected, specify
the needed parameters, on the Collect extra parameters
screen. Otherwise, the scaling procedure is completed.
| Note: |
This step is optional, leave the fields blank if none of these parameters
are needed.
|
Figure 11 Scale-in VNF Instance
The following optional scale-in parameters are available:
UUIDs of specific VMs to be scaled-in
| Note: |
If the number of UUIDs specified is lower than the number of
VMs given in the previous step, the workflow automatically
scales-in the remaining VMs.
|
VM locking method, that is, graceful or forceful
If VMs are locked gracefully, a timer for graceful lock
This section describes how to terminate a VNF using VNF-LCM.
Continue with this procedure only if the VNF to be terminated was instantiated using
the VNF-LCM.
Steps
-
In the VNF-LCM Workflows screen select
Terminate
VNF,
and click the Start a New Instance
button.
Figure 12 Select Workflow
-
On the Start a Workflow screen, fill out the
Instance Name field, and click
Submit.
-
Select the newly created workflow from the Instance
Activity panel.
-
On the Workflow Instance
screen,
select the VNF to
terminate,
termination options, and click
Submit.
Figure 13 Terminate VNF
The following termination options are available:
| Graceful |
|
The VMs in the cluster are gracefully locked, the VNF instance
gradually stops processing traffic. The VNF is terminated after the
expiration of the graceful termination period.
|
|
| Forceful |
|
The VNF is terminated immediately, all ongoing traffic is lost. This
option must be confirmed on the next screen, as it stops all
traffic.
|
|
| Graceful termination timeout (sec) |
|
The graceful termination timeout value defines after how many seconds
the VNF is terminated when graceful termination has been applied but
there is still ongoing traffic. Default value: -1, meaning that
there is no graceful termination period, that is, the VNF is
terminated only after all VMs stopped processing traffic.
|
Results
The VMs in the cluster are
terminated
with the method selected in Step 4,
the VNF instance
stops
processing traffic, and is terminated.
|
[1]
|
System Administration Guide, 1543-CNH 160 9180
|
|
[2]
|
VNF-Lifecycle Manager System Administration Guide,
1543-APR 901 0578
|