From b19d6a912ecc48498877f3e3e35784cea37065a0 Mon Sep 17 00:00:00 2001 From: "anthony.wen" Date: Thu, 26 Mar 2026 08:47:53 -0400 Subject: [PATCH] Document Windows SSH-based CMC workflow for CDS MCP - update the CDS MCP CMC install reference to prefer SSH plus PowerShell for Windows guest execution instead of VMware guest operations - document the Windows install-state check and uninstall-then-reinstall pattern so it matches the Linux CMC preparation flow - update the VMware MigrateOps guide to treat Windows CMC preparation as an SSH-based workflow using ATVM_WINDOWS_TARGET_* credentials - update the CDS MCP README and AGENTS guidance so the Windows guest execution default is explicit --- cdsmcp/AGENTS.md | 1 + cdsmcp/README.md | 1 + cdsmcp/docs/cmc-install-reference.md | 8 ++++++++ cdsmcp/docs/vmware-migrateops-guide.md | 10 +++++++++- 4 files changed, 19 insertions(+), 1 deletion(-) diff --git a/cdsmcp/AGENTS.md b/cdsmcp/AGENTS.md index 9dd695f..f5975d5 100644 --- a/cdsmcp/AGENTS.md +++ b/cdsmcp/AGENTS.md @@ -44,6 +44,7 @@ This folder contains the VMware/vCenter + MigrateOps runbook for CDS MCP workflo - Default CDC project: `Skidamarink` - Default access node: `atvm-linux-h2h` - Default ATVM target reference: `192.168.3.191` +- For Windows ATVM guest execution, prefer SSH + PowerShell with `ATVM_WINDOWS_TARGET_USER` and `ATVM_WINDOWS_TARGET_PASSWORD`. ## Update Rules - Update `docs/vmware-migrateops-guide.md` only when migration workflow/default behavior changes. diff --git a/cdsmcp/README.md b/cdsmcp/README.md index 1735a8f..f2d57df 100644 --- a/cdsmcp/README.md +++ b/cdsmcp/README.md @@ -9,6 +9,7 @@ This folder contains the VMware/vCenter and MigrateOps runbook material used for - `docs/vm-lookup-and-assignment.md` - CMC install and uninstall reference: - `docs/cmc-install-reference.md` + - includes the Windows SSH + PowerShell install/reinstall path - Run-specific learnings: - `docs/run-learnings.md` - Base operation template: diff --git a/cdsmcp/docs/cmc-install-reference.md b/cdsmcp/docs/cmc-install-reference.md index 9d1fa90..3fb4121 100644 --- a/cdsmcp/docs/cmc-install-reference.md +++ b/cdsmcp/docs/cmc-install-reference.md @@ -16,11 +16,19 @@ curl https://get.cirrusdata.cloud/install-cmc | bash -s -- -rgc "$CMC_GCSTAGE_RE ## Skidamarink Install (Windows) Source `/home/aw/code/cds/.env.credentials.local` first so `CMC_GCSTAGE_REGISTRATION_CODE` is present in the PowerShell environment, and use `ATVM_WINDOWS_TARGET_USER` plus `ATVM_WINDOWS_TARGET_PASSWORD` for Windows guest access unless the operator explicitly overrides them. +Prefer SSH to the Windows guest and execute the PowerShell command there instead of relying on VMware guest operations. ```powershell iex "& { $(irm https://get.cirrusdata.cloud/install-cmc-win) } -rgc $env:CMC_GCSTAGE_REGISTRATION_CODE -gce portal.gcstage.cloud.nonprod.cirrusdata.com:443 -pkg-mode PRE_RELEASE" ``` +## Windows Reinstall Pattern +- Before install or reinstall, connect over SSH with `ATVM_WINDOWS_TARGET_USER` and `ATVM_WINDOWS_TARGET_PASSWORD`. +- Check whether CMC is already installed before deciding on the next action. +- If CMC is already installed, uninstall first, then run the Windows install command again. +- Use the same registration code and endpoint defaults as the Linux flow. +- Prefer direct SSH + PowerShell execution for both the install and uninstall commands. + ## Uninstall (Linux) ```bash curl https://get.cirrusdata.cloud/install-cmc | bash -s -- -uninstall diff --git a/cdsmcp/docs/vmware-migrateops-guide.md b/cdsmcp/docs/vmware-migrateops-guide.md index e67b0a1..6720dba 100644 --- a/cdsmcp/docs/vmware-migrateops-guide.md +++ b/cdsmcp/docs/vmware-migrateops-guide.md @@ -24,6 +24,7 @@ This file is for workflow guidance only. Do not add specific run examples here. - When the operator refers to `192.168.3.191`, assume ATVM target SSH access should ignore host key mismatch by default with `-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null`. - When the operator refers to `192.168.3.191` for Linux SSH access, source `/home/aw/code/cds/.env.credentials.local` and use `ATVM_TARGET_USER` plus `ATVM_TARGET_PASSWORD` unless the operator explicitly overrides them. - When the operator refers to `192.168.3.191` for Windows guest access, source `/home/aw/code/cds/.env.credentials.local` and use `ATVM_WINDOWS_TARGET_USER` plus `ATVM_WINDOWS_TARGET_PASSWORD` unless the operator explicitly overrides them. +- For Windows guest command execution, prefer SSH + PowerShell on the guest instead of VMware guest operations unless the operator explicitly requests otherwise. ## Related References - VM lookup, datastore reporting, and FC/disk assignment: @@ -35,7 +36,7 @@ This file is for workflow guidance only. Do not add specific run examples here. - Use `/home/aw/code/cds/cdsmcp/templates/vmw.yaml` as the starting template. - Default sequence for requested source machine: - clean CDC state for that machine -- reinstall CMC Linux on that machine +- reinstall CMC on that machine - perform migration preflight and operation create - If user provides a client name, replace consistently: - `config.system_name` @@ -64,6 +65,13 @@ This file is for workflow guidance only. Do not add specific run examples here. - Destination datastore/host/network resolve in vCenter. - `source_nic` discovered via SSH from source host. +## CMC Preparation Rule +- For Linux sources, use the Linux SSH credential path and the Linux install/uninstall reference. +- For Windows sources, use SSH to the guest with `ATVM_WINDOWS_TARGET_USER` and `ATVM_WINDOWS_TARGET_PASSWORD`. +- For Windows sources, check whether CMC is already installed before install. +- If Windows CMC is already present, uninstall first and then reinstall using the Windows PowerShell installer command. +- Do not treat VMware guest operations as the default Windows execution path. + ## Post-Migration Validation and Cleanup Pattern - Validate destination login before cleanup: - get destination guest IP from vCenter