- Overview
rvtconfig
tool- Verifying and uploading configuration
- Comparing existing configuration in the CDS with
compare-config
- Deleting configuration from the CDS with
delete-deployment
- Deleting state and configuration for a node type from the CDS with
delete-node-type
- Listing configurations available in the CDS with
list-config
- Retrieving configuration from the CDS with
dump-config
- Displaying the current leader seed with
print-leader-seed
- Splitting an SDF by product type with
split-sdf
- Generating a
private-key
for Encrypting Passwords withgenerate-private-key
- Retrieving VM logs with
export-log-history
- Viewing the values associated with the special
sdf-version
,this-vm
, andthis-rvtconfig
versions withdescribe-versions
rvtconfig
Limitations
Overview
To apply an update to the Rhino VoLTE TAS’s declarative configuration, the rvtconfig
tool is used.
rvtconfig
applies configuration to the Rhino VoLTE TAS’s configuration data store (CDS).
The CDS distributes this configuration to the Rhino VoLTE TAS’s VMs.
The rvtconfig
tool is provided on the VMs that the RVT runs on and the SIMPL VM.
For further information on configuring the RVT’s virtual machines, refer to the RVT VM Install Guide (CDMA) and the RVT VM Install Guide (GSM).
rvtconfig
tool
Configuration YAML files can be validated and uploaded to the CDS using the rvtconfig
tool.
The rvtconfig
tool can be run either on the SIMPL VM or any {solution-type} VM.
On the SIMPL VM, you can find the command in the resources
subdirectory of any
{solution-type} (tsn
, shcm
, mag
, mmt-gsm
, mmt-cdma
or smo
) CSAR, after it has been extracted using csar unpack
.
/home/admin/.local/share/csar/<csar name>/<version>/resources/rvtconfig
On any {solution-type} VM, the rvtconfig
tool is in the PATH
for the sentinel
user and can be run directly by running:
rvtconfig <command>
The available rvtconfig
commands are:
-
rvtconfig validate
validates the configuration, even before booting any VMs by using the SIMPL VM. -
rvtconfig upload-config
validates, encrypts, and uploads the configuration to the CDS. -
rvtconfig delete-deployment
deletes a deployment from the CDS.Only use this when advised to do so by a Customer Care Representative. -
rvtconfig delete-node-type
deletes state and configuration for a given node type from the CDSOnly use this after deleting all VMs for a given node type. -
rvtconfig list-config
displays a summary of the configurations stored in the CDS. -
rvtconfig dump-config
dumps the current configuration from the CDS. -
rvtconfig print-leader-seed
prints the current leader seed as stored in the CDS. -
rvtconfig split-sdf
splits an SDF definition into separate ones, one for each instance. -
rvtconfig generate-private-key
generates a new private key for use in the SDF. -
rvtconfig export-log-history
exports the quiesce log history from the CDS. -
rvtconfig describe-versions
prints the current values of the versions of the VM found in the config and in the SDF. -
rvtconfig compare-config
compares currently uploaded config with a given set of configuration.
Commands that read or modify the CDS state take a --cds-address
parameter
(which is also aliased as --cds-addresses
, --cassandra-contact-point
, --cassandra-contact-points
, or simply -c
).
For this parameter, specify the management address(es) of at least one machine hosting the CDS database.
Separate multiple addresses with a space, for example --cds-address 1.2.3.4 1.2.3.5
.
For more information, run rvtconfig --help
or rvtconfig upload-config --help
.
Verifying and uploading configuration
-
Create a directory to hold the configuration YAML files.
mkdir yamls
-
Ensure the directory contains the following:
-
configuration YAML files
-
the Solution Definition File (SDF)
-
Rhino license for nodes running Rhino.
-
Do not create any subdirectories. Ensure the file names match the example YAML files. |
Verifying configuration with validate
To validate configuration, run the command:
rvtconfig validate -t <node type> -i ~/yamls
where <node type>
is the node type you want to verify, which can be {all-node-type-rvtconfig-commands}.
If there are any errors, fix them, move the fixed files to the yamls
directory, and then
re-run the above rvtconfig validate
command on the yamls
directory.
Once the files pass validation, store the YAML files in the CDS using the rvtconfig upload-config
command.
If using the SIMPL VM, the |
Uploading configuration to the CDS with upload-config
To upload the YAML files to the CDS, run the command:
rvtconfig upload-config -c <{cds-name-lowercase}-mgmt-addresses> -t <node type> -i ~/yamls
(--vm-version-source [this-vm | this-rvtconfig | sdf-version] | --vm-version <vm_version>) [--reload-resource-adaptors]
The |
-
--vm-version
specifies the version of the VM to target (as configuration can differ across a VM upgrade). -
--vm-version-source
automatically derives the VM version from the given source. Failure to determine the version will result in an error.-
Use
this-rvtconfig
when running thervtconfig
tool included in the CSAR for the target VM, to extract the version information packaged intorvtconfig
. -
Use
this-vm
if running thervtconfig
tool directly on the VM being configured, to extract the version information from the VM. -
Option
sdf-version
extracts the version value written in the SDF for the given node.
-
Whatever way you enter the version, the value obtained must match the version on the SDF. Otherwise, the upload will fail. |
Any YAML configuration values which are specified as secrets are marked as such in the
YAML files' comments. These values will be encrypted using the generated private-key created by
rvtconfig generate-private-key
and prior to uploading the SDF. In other words, the secrets should be
entered in plain text in the SDF, and the upload-config
command takes care of encrypting them.
Currently this applies to the following:
-
Rhino users' passwords
-
REM users' passwords
-
SSH keys for accessing the VM
-
the HTTPS key and certificate for REM.
Use the |
If the CDS is not yet available, this will retry every 30 seconds for up to 15 minutes. As a large Cassandra cluster can take up to one hour to form, this means the command could time out if run before the cluster is fully formed. If the command still fails after several attempts over an hour, troubleshoot Cassandra on the machines hosting the CDS database.
This command first compares the configuration files currently uploaded for the target version with those in the input directory. It summarizes which files are different and how many lines differ. If any files are different, it will prompt the user to confirm the differences are as expected before continuing with the upload.
If the upload is canceled and --output-dir
is specified, then full details of any files with
differences will be put into the given output directory, which gets created by the command.
Changes to secrets and non-YAML files cannot be detected due to encryption; they will not appear in the summary or detailed output. Any such changes will still be uploaded.
This pre-check on config can be disabled by using the -f
flag.
Restarting resource adaptors
Specify the The If you apply configuration changes
that don’t include changes to any fields marked as needing an RA restart,
then you do not need to specify the If you apply configuration changes that include changes to such fields,
and do not specify the |
Comparing existing configuration in the CDS with compare-config
Compare the configuration in an input directory with the currently uploaded configuration in the CDS using the command:
rvtconfig compare-config -c <{cds-name-lowercase}-mgmt-addresses> -t <node type> -i ~/yamls --output-dir <output-directory>
[(--vm-version-source [this-vm | this-rvtconfig | sdf-version] | --vm-version <vm_version>)]
This will compare the currently uploaded configuration in the CDS with the configuration in the local input directory.
The version of configuration to look up will be automatically taken from the SDF.
If the optional --vm-version-source
or --vm-version
parameter is provided, then this is used instead.
This can be used to check what has changed just before running an upgrade, where the version in the SDF differs.
The files that have differences will be displayed, along with the number of different lines. The full contents of each version of these files will be put in the output directory, along with the differences found. When doing so, secrets and non-YAML files are ignored.
The files in this output directory use the suffix .local
for a redacted version of the input file, .live
for a
redacted version of the live file, and .diff
for a diff command run against the two showing the differences.
The contents of the files in the output directory are reordered and no longer have comments; these won’t match the formatting of the original input files, but contain the same information. |
Deleting configuration from the CDS with delete-deployment
Delete all deployment configuration from the CDS by running the command:
rvtconfig delete-deployment -c <{cds-name-lowercase}-mgmt-addresses> -d <deployment-id> [--delete-audit-history]
Only use this when advised to do so by a Customer Care Representative. |
Deleting state and configuration for a node type from the CDS with delete-node-type
Delete all state and configuration for a given node type and version from the CDS by running the command:
rvtconfig delete-node-type -c <{cds-name-lowercase}-mgmt-addresses> -d <deployment-id> --site-id <site-id> --node-type <node type>
(--vm-version-source [this-vm | this-rvtconfig | sdf-version -i ~/yamls] | --vm-version <vm_version>) [-y]
The argument -i ~/yamls
is only needed if sdf-version
is used.
Only use this after deleting all VMs of this node type within the specified site. Functionality of all nodes of this type within the given site will be lost. These nodes will have to be redeployed to restore functionality. |
Listing configurations available in the CDS with list-config
List all currently available configurations in the CDS by running the command:
rvtconfig list-config -c <{cds-name-lowercase}-mgmt-addresses> -d <deployment-id>
This command will print a short summary of the configurations uploaded, the VM version they are uploaded for, and which VMs are commissioned in that version.
Retrieving configuration from the CDS with dump-config
Retrieve the VM group configuration from the CDS by running the command:
rvtconfig dump-config -c <{cds-name-lowercase}-mgmt-addresses> -d <deployment-id> --group-id <group-id>
(--vm-version-source [this-vm | this-rvtconfig | sdf-version -i ~/yamls -t <node type>] | --vm-version <vm_version>)
[--output-dir <output-dir>]
Group ID syntax: RVT-<node type>.<site_id> Example: RVT-tsn.DC1 Here, <node type> can be tsn , shcm , mag , mmt-gsm , mmt-cdma or smo .
|
If the optional --output-dir <directory>
argument is specified,
then the configuration will be dumped as individual files in the given directory.
The directory can be expressed as either an absolute or relative path.
It will be created if it doesn’t exist.
If the --output-dir
argument is omitted, then the configuration is printed to the terminal.
The arguments -i ~/yamls
and -t <node type>
are only needed if sdf-version
is used.
Displaying the current leader seed with print-leader-seed
Display the current leader seed by running the command:
rvtconfig print-leader-seed -c <{cds-name-lowercase}-mgmt-addresses> -d <deployment-id> --group-id <group-id>
(--vm-version-source [this-vm | this-rvtconfig | sdf-version -i ~/yamls -t <node type>] | --vm-version <vm_version>)
Group ID syntax: RVT-<node type>.<site_id> Example: RVT-tsn.DC1 Here, <node type> can be tsn , shcm , mag , mmt-gsm , mmt-cdma or smo .
|
The command will display the current leader seed for the specified deployment, group, and VM version.
A leader seed may not always exist, in which case the output will include No leader seed found
.
Conditions where a leader seed may not exist include:
-
No deployment exists with the specified deployment, group, and VM version.
-
A deployment exists, but initconf has not yet initialized.
-
A deployment exists, but the previous leader seed has quiesced and a new leader seed has not yet been selected.
The arguments -i ~/yamls
and -t <node type>
are only needed if sdf-version
is used.
Splitting an SDF by product type with split-sdf
Create partial SDFs for each VM by running the command:
rvtconfig split-sdf -i <input-directory> -o <output-directory> <sdf>
Generating a private-key
for Encrypting Passwords with generate-private-key
Rhino TAS and REM require the configuration to supply passwords that are encrypted with a private key.
rvtconfig
can generate a private-key to encrypt a password with the following command:
rvtconfig generate-private-key
The SDF can be updated with the generated private key.
Details on preparing the SDF are found in the RVT VM Install Guide for CDMA networks and the RVT VM Install Guide for GSM networks.
Retrieving VM logs with export-log-history
During upgrade, when a downlevel VM is removed, it uploads {vm-quiesce-logs} logs to the CDS. The log files are stored as encrypted data in the CDS.
Only the portions of the logs written during quiesce are stored. |
Retrieve the VM logs for a deployment from the CDS by running the command:
rvtconfig export-log-history -c <{cds-name-lowercase}-mgmt-addresses> -d <deployment-id> --zip-destination-dir <directory>
--private-key <private-key>
The --private-key must match the key used in the SDF (secrets-private-key ).
|
The {vm-quiesce-logs} logs are exported in unencrypted zip files. The zip file names will consist of VM hostname, version, and type of log. |
Viewing the values associated with the special sdf-version
, this-vm
, and this-rvtconfig
versions with describe-versions
Some commands, upload-config
for example, can be used with the special version values sdf-version
, this-vm
, and this-rvtconfig
.
-
Calling
sdf-version
extracts the version from the value given in the SDF for the given node. -
The
this-vm
option takes the version of the VM the commands are being run from. This can only be used when running commands on a node VM. -
Using
this-rvtconfig
extracts the version from the rvtconfig found in the directory the command is being run from. This can only be used on a SIMPL VM.
To view the real version strings associated with each of these special values:
rvtconfig describe-versions [-i ~/yamls -t <node type(s)>]
Both optional arguments -i ~/yamls
and -t <node type(s)>
are required for the sdf-version
value to be given. Multiple node types can be taken as arguments.
If a special version value cannot be found, for example if this-vm
is run on a SIMPL VM or neither of the optional arguments are called, the describe-versions
command will print N/A for that special version.