Planning for the procedure
Background knowledge
This procedure assumes that:
-
you are installing into an existing OpenStack deployment
-
you are using an OpenStack version from Icehouse through to Train inclusive
-
you have some knowledge of VMs and familiarity with OpenStack’s host software
-
if you require information on deploying on OpenStack, see Installing ShCM on OpenStack for links to OpenStack documentation
-
-
you have read the installation guidelines at Initial Setup and have everything you need to carry out the installation.
Reserve maintenance period
This procedure does not require a maintenance period. However if you are integrating into a live network then it’s recommended to implement measures to mitigate any unforeseen events.
Tools and access
You must have:
-
access to a local computer with a network connection and browser access to the OpenStack Dashboard
-
administrative access to the OpenStack host machine
-
the OpenStack privileges required to deploy VMs from an image (see OpenStack documentation for specific details).
Installation Questions
Question | More information |
---|---|
Do you have the OpenStack flavor for ShCM? |
You should have created these by following the instructions in Create a ShCM OpenStack flavor. |
Have you installed the OpenStack image for ShCM? |
You should have installed the image by following the instructions in Install ShCM Virtual Appliance as an OpenStack image. |
Have you created and do you know the names of the networks and security group for ShCM? |
Use the OpenStack documentation to create the management and signaling networks and a subnet for each. Follow Determine Network Names and Security Group to get the names of the networks and check the security group is created. |
Do you have network information for HSS endpoints and HTTP Resource Adaptor? |
Each node connects to HSS/SLF via Diameter Sh and the Cassandra cluster. It also exposes an HTTP address for API connectivity. |
Do you have a list of the IP addresses that you intend to give to each node? |
Each node requires two IP addresses - one for signaling which will support Diameter, HTTP and CQL traffic, and one for management traffic. |
Do you have DNS and NTP Server information? |
It’s expected that the system will integrate with the IMS Core NTP and DNS servers. |
Installation Steps
Repeat the following steps for each ShCM VM that you are creating.
Step | Information |
---|---|
1 - Create ports |
Create a port for each network interface on each VM, to determine the MAC addresses for that VM. |
2 - Create userdata YAML document |
The userdata provides the VM with some basic configuration, such as IP address, DNS servers, and so on. |
3 - Deploy VM |
Use |
This procedure requires you to enter complex and detailed OpenStack commands which also require the input of lengthy parameters. We strongly recommend that you create these commands in a text editor and then copy and paste them into the SSH session for execution. If you have a large number of VMs, you may want to write a script to automate the commands. |
Method of procedure
Step 1 - Create ports
This procedure describes how to create ports for the VM to use. A port associates a VM’s network interface (NIC) with one of the OpenStack host’s networks and subnets, and assigns the NIC a MAC address and IP address.
Prerequisites
-
You must have created the networks and security group used by the VMs, and know their names. See Determine Network Names and Security Group.
-
You must know the IP addresses to be associated with this VM.
Detailed procedure
-
For each network required by this VM, create a port using the following command:
For OpenStack Pike and later
openstack port create \ --network <network-name> \ --description <description> \ --fixed-ip ip-address=<IPv4 address> \ --security-group <security-group-name> \ <name>
For OpenStack Ocata and earlier
neutron port-create \ <network-name> \ --fixed-ip ip_address=<IPv4 address> \ --security-group <security-group-name> \ --name <name>
where:
-
<network-name>
is the name of the network for this port -
description
is a short description of the port - a suggested format is<hostname> <network name>
, e.g.shcm-1 management
-
<IPv4 address>
is the IP address of this VM for this network -
<security-group-name>
is the name of the security group, normallyopen
-
<name>
is a name for the port - a suggested format is<hostname>-<network name>
, e.g.shcm-1-management
.
-
-
In the output, note the ID and MAC address that the OpenStack host has assigned to the port. The port ID will be required when using
nova boot
to deploy the VM instance. The MAC address will be required in the YAML userdata for the VM.
Ensure you repeat steps 2 and 3 for each network required by the VM (between two and four times in total).
Step 2 - Create userdata YAML document
Prerequisites
-
You must have created the ports for this VM and noted their MAC addresses.
-
You must know the values for all the bootstrap parameters.
-
You must know the signaling addresses of all the TSN nodes in your deployment.
Detailed procedure
Follow the instructions at Writing the YAML userdata document for OpenStack to create a file containing the userdata for this VM on the OpenStack server.
Set the CDS addresses parameter to a list of the signaling addresses of all the TSN nodes in your deployment.
Step 3 - Deploy VM
This procedure describes how to deploy a ShCM VM from the OpenStack image.
Prerequisites
-
You must have created the ports that the VM(s) will use.
-
You must have created the YAML userdata file which specifies the bootstrap parameters, including the MAC addresses of the ports you created for this VM.
Detailed procedure
-
If you haven’t done so already, log into the OpenStack host and source the client environment script for the tenant that will contain the Rhino VoLTE TAS VMs.
-
Determine the image ID of the node type being deployed.
-
You created this when following the procedures in Install ShCM Virtual Appliance as an OpenStack image.
-
You can use
openstack image list
to display the list of images and locate the appropriateimage id
.
-
-
Determine the flavor name for the node type. You created this in Create a ShCM OpenStack flavor.
-
Create the virtual machine by running
nova boot
:nova boot \ --image <image id> \ --flavor <flavor name> \ --security-groups <security-group-name> \ --availability-zone nova \ --nic port-id=<mgmt-port-id> \ --nic port-id=<sig-port-id> \ --config-drive true \ --user-data <path-to-userdata-file> \ <hostname>
where:
-
<image id>
is the ID of the image for this node type -
<flavor name>
is the name of the flavor for this node type -
<security-group-name>
is the name of the unrestricted security group, normallyopen
-
<mgmt-port-id>
is the ID of the port for this VM’s management interface -
<sig-port-id>
is the ID of the port for this VM’s signaling interface -
<path-to-userdata-file>
is the relative or absolute path to the YAML userdata file -
<hostname>
is the VM’s hostname, which must match that specified in the YAML userdata file.Make a note of the ID of the newly created virtual machine because you will need to use this (as
<VM id>
) in subsequent commands.Previous versions of the ShCM VM, and the 3.1 series of the MMT, MAG and SMO VMs, use the
--meta
option tonova boot
to provide the properties. With userdata,--meta
is no longer used.
-
-
Run the command
nova show <VM id>
. View the status.-
If you see ACTIVE, the VM has been created successfully and is powered on.
-
If you see BUILD, the VM is still being created and you should wait a few moments before running the command again.
-
If you see ERROR, you should terminate the VM, using the procedure described in the Backout Procedure.
-
Results
A ShCM VM has been created and powered on. The bootstrap script will run automatically once the VM has booted.
Repeat the above steps for each ShCM VM you are creating.
Next step
Once all ShCM VMs have been created using the procedure above, configure them by uploading configuration to CDS. Follow the links from this page.
Backout procedure
If you need to delete a VM which has failed to create, bootstrap or configure properly, use the following steps.
-
Run
nova delete <VM id>
, whereVM id
is the ID of the VM that was created above.If you don’t know the
VM id
, you can determine it usingnova list
. -
Run
nova list
to verify that the server has been deleted. -
Delete the ports you created for this VM.
For OpenStack Pike and later: For each port you created for this VM, run
openstack port delete <port ID>
, where<port ID>
is the ID of the port. Then verify usingopenstack port list
that there are no more ports remaining.For OpenStack Ocata and earlier: For each port you created for this VM, run
neutron port-delete <port ID>
, where<port ID>
is the ID of the port. Then verify usingneutron port-list
that there are no more ports remaining.