Step 1 |
Navigate to the msx-3.9.0 Ansible folder.
cd /msx-<version>/ansible
|
Step 2 |
Create an Ansible vault password file with the same password used in MSX 3.8.0 and export the path as specified:
export ANSIBLE_VAULT_PASSWORD_FILE=<path_to_vault_password_file>
|
Step 3 |
(OpenStack only) Source the V3 OpenStack configuration file to enable access to your OpenStack project, which will use the
values within the openrc file:
|
Step 4 |
Upload the MSX isolated binaries to your S3 (AWS) / minio (OpenStack) bucket. This process should take approximately 15 minutes.
ansible-playbook upload-isolated-binaries.yml
|
Step 5 |
Edit /msx-3.9.0/ansible/group_vars/all/main.yml to change the mode variable from “FreshInstall” to "Upgrade".
|
Step 6 |
Upload the service packs that you require. For all Service Packs, this process should take approximately 30 minutes.
ansible-playbook upload-all-servicepacks.yml
|
Step 7 |
Run the following script from the 3.9 container to perform a data backup of the MSX instance that is in service. The data
backup process allows you to take a backup of all persistent MSX data, such as Cassandra, Elasticsearch, and NSO data. This
process is useful in cases where you might need to recover lost or corrupted MSX data from a backup. This process should take
approximately 30 minutes.
ansible-playbook vms-backup.yml --extra-vars backup_tag=backup-tag-name
This command creates a backup that is tagged with the current timestamp under the vms-backup folder. Optionally, you can use
--extra-vars backup_tag=specify-name-of-backup (For example: ansible-playbook vms-backup.yml --extra-vars backup_tag=pre-3.9-upgrade).
This ensures that the same backup is created for every run, thus enabling you to automate the restore process.
If the vms-backup.yml playbook fails, you should not proceed with the next steps. Instead, contact Cisco technical support
for further guidance.
|
Step 8 |
Edit each Service Pack deployment variables file so that it matches your deployment requirements. Additionally, set the schema_mode
variable to "Upgrade". The Service Pack variable files are located at: /msx-3.9.0/ansible/group_vars/all/servicepack_name_variables.yml
|
Step 9 |
Upgrade the Infra Services to update the infrastructure components for the Platform Microservices and Service Packs. This
process should take approximately 20 minutes.
ansible-playbook upgrade-infra-services.yml
|
Step 10 |
Run the Blue/Green platform Microservice update, which will upgrade the Platform and Service Packs. Both 3.8.2 and 3.9.0 Microservices
will be running in parallel, however all traffic will be routed to 3.8.2 at this stage. Additionally, all Microservices will
be running in non-HA mode.
ansible-playbook blue-green-ms-upgrade.yml
|
Step 11 |
Perform an upgrade of the Network Service Orchestrator (NSO) component. At this point, any updates to existing services or
the provisioning of new services will be queued (and delayed) until the NSO upgrade has completed.
ansible-playbook bg-nso-upgrade.yml
|
Step 12 |
Run the switch-ms-routing.yml playbook. This will redirect traffic from MSX 3.8.2 to 3.9, enable HA mode, and will delete
all 3.8.2 Microservice instances once complete.
ansible-playbook switch-ms-routing.yml
|
Step 13 |
Upgrade the MSX user interface for the Platform and Service Packs.
ansible-playbook upgrade-ui.yml
|
Step 14 |
Upgrade Action Orchestrator and the Workflow engine. The Workflow engine will be placed in maintenance mode, so no new Workflows
can be created or updated during this time. This process should take approximately 40 minutes.
ansible-playbook upgrade-ao.yml
|
Step 15 |
Upgrade OS and Kubernetes. This will update Kubernetes and the underlying Operating System kernel, security components, and
any other required system updates. This upgrade will be performed one node at a time starting with the Kubernetes Master nodes.
ansible-playbook os-k8s-rolling-upgrade.yml
|
Step 16 |
Verify that the nodes and services in your upgraded deployment are healthy. This process should take approximately 5 minutes.
ansible-playbook checks/check-vms.yml
|