To assist the creation of the input file for a TCA deployment topology, migration tool provides a CLI to generate the input file template with discovered appliances. This will also contain the required template schema and associated TCA appliance information.

The following is usage of CLI. By default, the output is emitted into migrationVolume/topology-output.json. If needed, you can specify -o <output-file> with or without path.

Generate template CLI Help:

$ python3 vm_cn_migration.py generate-template -h
usage: vm_cn_migration.py generate-template [-h] [-o OUTPUT_FILE] input_file

Generates topology template that contains TCA Manager and CP details

positional arguments:  
  input_file            input file containing TCA manager details.

options:  
  -h, --help            show this help message and exit  
  -o OUTPUT_FILE, --output_file OUTPUT_FILE                        
                        output file of generated topology in JSON format.      Default: migrationVolume/topology-output.json  

Input for the CLI:

To run the CLI, provide 2.3 TCA-M (443) endpoint information along with the credentials. You need to encrypt tcaWebPassword as well as provide tcaWebThumbprint if TCA-M 443 endpoint hosts signed cert. To get thumbprint, see Get Thumbprints for endpoints. Copy the fetched encrypted password and thumbprint into the input file (for example, topo-input.json).

Example of topo-input.json file as input:

{  "tcaMgr":{    

    "vmEndpoint":"<TCA Manager endpoint IP/FQDN>",    
    "tcaWebUsername":"<TCA Web (443 port) user name with system admin privileges>",    
    "tcaWebPassword":"<TCA Web (443 port) password with system admin privileges encrypted using encrypt CLI>",    
    "tcaWebThumbprint":"<Thumbprint in SHA-256 format in case of self signed certs>"  
  }
}

E.g.

{  
"tcaMgr{    
    "vmEndpoint":"1.2.3.4",    
    "tcaWebUsername":"[email protected]",    
    "tcaWebPassword":"yUrtoZ6KiL...FQWtcrzMH0q4qm2OjPGiC",    
    "tcaWebThumbprint":"F7:AF:17:4E:5B:9F:F0:10:8B:28:31:AC:C7:7C:08:6C:7B:B2:A6:EF:ED:4F:21:0E:EC:0E:05:60:4F:D5:CD:E4"  
  }
}

Generate template CLI:

python3 vm_cn_migration.py generate-template topo input.json                            # Output file placed in /migrationVolume/topology-output.json

or

python3 vm_cn_migration.py generate-template topo-input.json -o /migrationVolume/tca-market-east.json

The CLI output also contains heuristic sizing estimates of disk space at the end of tool output in stdout.

Required (based on heuristics for the given topology) disk space (GB) for migration on migrationVolume: 6.6. Disk usage: [Total: 931.5, Free: 58.4]

The following is example of the template output file

$ cat /migrationVolume/topology-output.json  
{    

       "tcaMgr":{        
            "name":"TCA Manager",        
            "vmEndpoint":"1.2.3.4",        
            "tcaWebPassword":"<Mandatory, TCA Manager Web Interface port 443 login password in encrypted format using encrypt command>",        
            "appMgrPassword":"<Mandatory, Appliance Manager port 9443 login password for backup on old VM in encrypted format using encrypt command>",        
"appMgrThumbprint":"DB:25:1A:CB:37:29:ED:23:CD:EA:71:AF:EA:28:1D:8B:0F:67:57:75:D8:8A:EF:8D:D8:F9:0F:4C:3B:5E:8E:3D",        
            "cnPassword":"<Optional, when left empty, VM's appliance manager password (9443) is used. Specify password with at least 8 chars encrypted using encrypt command>",        
            "cnRootPassword":"<Optional, when left empty, VM's appliance manager password (9443) is used. Specify password with at least 8 chars encrypted using encrypt command>",        
            "deploymentOption":"Mandatory, <Small/Medium/Large/X-Large> Large is default for TCA-M, Medium is default for TCA-CP",        
            "service_wfh":"<Mandatory for TCA Manager. Boolean (\"True\", \"False\"), enable workflow hub on TCA-M. Flag is ignored for TCA-CP>",        
            "vcEndpoint":"<IP or FQDN of the management VC where the TCA appliance is deployed. All vCenter details are mandatory including old VM name, if tool deploys appliance>",        
            "vcUsername":"<Management VC username>",        
            "vcPassword":"<Management VC password in encrypted format using encrypt command>",        
            "vcThumbprint":"<Thumbprint of management VC, if self-signed cert>",        
            "oldVmName":"<Name of the old VM>",        
            "newVmName":"<Optional, Name of the new VM, default is {oldVmName}-CN>",        
            "ovaUrl":"<URL of OVA download>",        
            "forceDeploy":"<Optional, when set to True, deletes 'newVmName', if exists. Default value is False>",        
            "external_address":"<Optional, when left empty VM IP will be assigned by TCX installer. This param is used by Kafka event mesh>",        
            "tca_user_passwd":"<Optional, when left empty, 'cnPassword' is used. Specify password with at least 8 chars encrypted using encrypt command>",        
            "tcaWebUsername":"[email protected]",        
"tcaWebThumbprint":"F7:AF:17:4E:5B:9F:F0:10:8B:28:31:AC:C7:7C:08:6C:7B:B2:A6:EF:ED:4F:21:0E:EC:0E:05:60:4F:D5:CD:E4"   
 
  },    
  "tcaCps": [        
      {            
          "name":"cdc1",            
          "vmEndpoint":"1.2.3.5",            
          "appMgrPassword":"<Mandatory, Appliance Manager port 9443 login password for backup on old VM in encrypted format using encrypt command>",            
"appMgrThumbprint":"2F:D0:D5:59:20:52:9D:06:83:49:08:BD:52:5B:A8:FF:8E:7C:03:CE:F1:32:C9:85:77:7D:C5:87:46:E9:4D:DC",            
          "cnPassword":"<Optional, when left empty, VM's appliance manager password (9443) is used. Specify password with at least 8 chars encrypted using encrypt command>",            
           "cnRootPassword":"<Optional, when left empty, VM's appliance manager password (9443) is used. Specify password with at least 8 chars encrypted using encrypt command>",            
           "deploymentOption":"Mandatory, <Small/Medium/Large/X-Large> Large is default for TCA-M, Medium is default for TCA-CP",            
           "vcEndpoint":"<IP or FQDN of the management VC where the TCA appliance is deployed. All vCenter details are mandatory including old VM name, if tool deploys appliance>",            
           "vcUsername":"<Management VC username>",            
           "vcPassword":"<Management VC password in encrypted format using encrypt command>",            
           "vcThumbprint":"<Thumbprint of management VC, if self-signed cert>",            
           "oldVmName":"<Name of the old VM>",            
           "newVmName":"<Optional, Name of the new VM, default is {oldVmName}-CN>",            
           "ovaUrl":"<URL of OVA download>",            
           "forceDeploy":"<Optional, when set to True, deletes 'newVmName', if exists. Default value is False>",            
           "external_address":"<Optional, when left empty VM IP will be assigned by TCX installer. This param is used by Kafka event mesh>",            
           "tca_user_passwd":"<Optional, when left empty, 'cnPassword' is used. Specify password with at least 8 chars encrypted using encrypt command>"        
     }   
   ]
}

The fields with values inside "<>" need to be filled. Some are mandatory and some are optional.

Note:

The field values contain description of the field to assist in filling the input.

If you want to use default fields then ensure that the optional fields are empty or removed from the input. For example, for the following optional field, specify empty ("") value or remove the field from the input JSON.

"cnPassword": "<Optional, when left empty, VM's appliance manager password (9443) is used. Specify password with at least 8 chars encrypted using encrypt command>" remove the description along with "<>" and change it to "cnPassword": "".