From 849f540f3742fff5530e8b2e16660cee54ed3080 Mon Sep 17 00:00:00 2001 From: "Chris J. Lin" <36452239+chrisjlin@users.noreply.github.com> Date: Thu, 21 Nov 2024 16:07:30 -0800 Subject: [PATCH 01/18] Update mcc-ent-deploy-to-windows.md Call out "log on as batch job" in a Note box for better visibility. --- windows/deployment/do/mcc-ent-deploy-to-windows.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/windows/deployment/do/mcc-ent-deploy-to-windows.md b/windows/deployment/do/mcc-ent-deploy-to-windows.md index ba27a5f82f8..be4f2d9a64d 100644 --- a/windows/deployment/do/mcc-ent-deploy-to-windows.md +++ b/windows/deployment/do/mcc-ent-deploy-to-windows.md @@ -33,7 +33,10 @@ Before deploying Connected Cache to a Windows host machine, ensure that the host For gMSAs, the value should be formatted as `"Domain\Username$"`. For Local User accounts, `$User` should be formatted as `"LocalMachineName\Username"`. - If you're using a Local User account as the Connected Cache runtime account, you'll also need to create a [PSCredential Object](/dotnet/api/system.management.automation.pscredential) named `$myLocalAccountCredential`. **Note**: You'll need to apply a local security policy to permit the Local User account to `Log on as a batch job`. + If you're using a Local User account as the Connected Cache runtime account, you'll also need to create a [PSCredential Object](/dotnet/api/system.management.automation.pscredential) named `$myLocalAccountCredential`. + + >[!Note] + >* You'll need to apply a local security policy to permit the Local User account to `Log on as a batch job`. 1. Run the provisioning command on the host machine. From c069ce9408a584269f8724a76a53f3225035277a Mon Sep 17 00:00:00 2001 From: "Chris J. Lin" <36452239+chrisjlin@users.noreply.github.com> Date: Thu, 21 Nov 2024 16:13:53 -0800 Subject: [PATCH 02/18] Update mcc-ent-deploy-to-windows.md Revising note about where the provisioning package should be extracted to on the host machine --- windows/deployment/do/mcc-ent-deploy-to-windows.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/windows/deployment/do/mcc-ent-deploy-to-windows.md b/windows/deployment/do/mcc-ent-deploy-to-windows.md index be4f2d9a64d..e1ff1c2af4f 100644 --- a/windows/deployment/do/mcc-ent-deploy-to-windows.md +++ b/windows/deployment/do/mcc-ent-deploy-to-windows.md @@ -26,7 +26,11 @@ Before deploying Connected Cache to a Windows host machine, ensure that the host # [Azure portal](#tab/portal) 1. Within the Azure portal, navigate to the **Provisioning** tab of your cache node and copy the provisioning command. -1. Download the provisioning package using the option at the top of the Cache Node Configuration page and extract the package onto the host machine. **Note**: The installer should be in a folder that isn't synced to OneDrive, as this will interfere with the installation process. +1. Download the provisioning package using the option at the top of the Cache Node Configuration page and extract the archive onto the host machine. + + >[!Note] + >* The provisioning package should be extracted to a directory that isn't synced to OneDrive, as the sychronization process will interfere with the installation. It is recommended to extract the provisioning package to the root directory of the host machine (e.g. C:\mccInstaller) + 1. Open a PowerShell window *as administrator* on the host machine, then change directory to the extracted provisioning package. 1. Set the Execution Policy to *Unrestricted* to allow the provisioning scripts to run. 1. Create a `$User` environment variable containing the username of the account you intend to designate as the Connected Cache runtime account. From 10afec4a8501bc49a2399daec8776630bf95418b Mon Sep 17 00:00:00 2001 From: "Chris J. Lin" <36452239+chrisjlin@users.noreply.github.com> Date: Thu, 21 Nov 2024 16:17:17 -0800 Subject: [PATCH 03/18] Update mcc-ent-deploy-to-windows.md Corrected "environment variable" to "PowerShell variable" --- windows/deployment/do/mcc-ent-deploy-to-windows.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/windows/deployment/do/mcc-ent-deploy-to-windows.md b/windows/deployment/do/mcc-ent-deploy-to-windows.md index e1ff1c2af4f..0c3eb345fb6 100644 --- a/windows/deployment/do/mcc-ent-deploy-to-windows.md +++ b/windows/deployment/do/mcc-ent-deploy-to-windows.md @@ -33,9 +33,9 @@ Before deploying Connected Cache to a Windows host machine, ensure that the host 1. Open a PowerShell window *as administrator* on the host machine, then change directory to the extracted provisioning package. 1. Set the Execution Policy to *Unrestricted* to allow the provisioning scripts to run. -1. Create a `$User` environment variable containing the username of the account you intend to designate as the Connected Cache runtime account. +1. Create a `$User` PowerShell variable containing the username of the account you intend to designate as the Connected Cache runtime account. - For gMSAs, the value should be formatted as `"Domain\Username$"`. For Local User accounts, `$User` should be formatted as `"LocalMachineName\Username"`. + For gMSAs, the `$User` PowerShell variable should be formatted as `"Domain\Username$"`. For Local User accounts, `$User` PowerShell variable should be formatted as `"LocalMachineName\Username"`. If you're using a Local User account as the Connected Cache runtime account, you'll also need to create a [PSCredential Object](/dotnet/api/system.management.automation.pscredential) named `$myLocalAccountCredential`. From 9c29d9d59fa791138e87a09ce88ef0d80cd26404 Mon Sep 17 00:00:00 2001 From: chrisjlin <36452239+chrisjlin@users.noreply.github.com> Date: Thu, 21 Nov 2024 16:40:37 -0800 Subject: [PATCH 04/18] Adding cloud proxy instructions --- windows/deployment/do/mcc-ent-deploy-to-linux.md | 4 ++++ windows/deployment/do/mcc-ent-deploy-to-windows.md | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/windows/deployment/do/mcc-ent-deploy-to-linux.md b/windows/deployment/do/mcc-ent-deploy-to-linux.md index 0fc31cdf23f..90c6496c585 100644 --- a/windows/deployment/do/mcc-ent-deploy-to-linux.md +++ b/windows/deployment/do/mcc-ent-deploy-to-linux.md @@ -26,6 +26,10 @@ Before deploying Connected Cache to a Linux host machine, ensure that the host m 1. Within the Azure portal, navigate to the **Provisioning** tab of your cache node and copy the provisioning command. 1. Download the provisioning package using the option at the top of the Cache Node Configuration page and extract the package onto the host machine. 1. Open a command line window *as administrator* on the host machine, then change directory to the extracted provisioning package. + + >[!Note] + >* If you are deploying your cache node to a host machine that uses a TLS-inspecting proxy (e.g. ZScaler), ensure that you've [configured the proxy settings](mcc-ent-create-resource-and-cache.md#proxy-settings) for your cache node, then place the proxy certificate file (.pem) in the extracted provisioning package directory and add `-proxyTlsCertificatePath [path to certificate]` to the provisioning command. + 1. Set access permissions to allow the `provisionmcc.sh` script within the provisioning package directory to execute. 1. Run the provisioning command on the host machine. diff --git a/windows/deployment/do/mcc-ent-deploy-to-windows.md b/windows/deployment/do/mcc-ent-deploy-to-windows.md index 0c3eb345fb6..9beba0bc515 100644 --- a/windows/deployment/do/mcc-ent-deploy-to-windows.md +++ b/windows/deployment/do/mcc-ent-deploy-to-windows.md @@ -32,6 +32,10 @@ Before deploying Connected Cache to a Windows host machine, ensure that the host >* The provisioning package should be extracted to a directory that isn't synced to OneDrive, as the sychronization process will interfere with the installation. It is recommended to extract the provisioning package to the root directory of the host machine (e.g. C:\mccInstaller) 1. Open a PowerShell window *as administrator* on the host machine, then change directory to the extracted provisioning package. + + >[!Note] + >* If you are deploying your cache node to a host machine that uses a TLS-inspecting proxy (e.g. ZScaler), ensure that you've [configured the proxy settings](mcc-ent-create-resource-and-cache.md#proxy-settings) for your cache node, then place the proxy certificate file (.pem) in the extracted provisioning package directory and add `-proxyTlsCertificatePemFileName [path to certificate]` to the provisioning command. + 1. Set the Execution Policy to *Unrestricted* to allow the provisioning scripts to run. 1. Create a `$User` PowerShell variable containing the username of the account you intend to designate as the Connected Cache runtime account. From 37751bd7af494b751ee16970194c1ef87ae1c772 Mon Sep 17 00:00:00 2001 From: chrisjlin <36452239+chrisjlin@users.noreply.github.com> Date: Thu, 21 Nov 2024 16:48:24 -0800 Subject: [PATCH 05/18] Adding cloud proxy changes to CLI tab --- .../deployment/do/mcc-ent-deploy-to-linux.md | 4 +++ .../do/mcc-ent-deploy-to-windows.md | 31 +++++++++++++------ 2 files changed, 25 insertions(+), 10 deletions(-) diff --git a/windows/deployment/do/mcc-ent-deploy-to-linux.md b/windows/deployment/do/mcc-ent-deploy-to-linux.md index 90c6496c585..583667db470 100644 --- a/windows/deployment/do/mcc-ent-deploy-to-linux.md +++ b/windows/deployment/do/mcc-ent-deploy-to-linux.md @@ -46,6 +46,10 @@ To deploy a cache node programmatically, you'll need to use Azure CLI to get the 1. Save the resulting output. These values will be passed as parameters within the provisioning command. 1. Download and extract the [Connected Cache provisioning package for Linux](https://aka.ms/MCC-Ent-InstallScript-Linux) to your host machine. 1. Open a command line window *as administrator* on the host machine, then change directory to the extracted provisioning package. + + >[!Note] + >* If you are deploying your cache node to a host machine that uses a TLS-inspecting proxy (e.g. ZScaler), ensure that you've [configured the proxy settings](mcc-ent-create-resource-and-cache.md#proxy-settings) for your cache node, then place the proxy certificate file (.pem) in the extracted provisioning package directory and add `-proxyTlsCertificatePath [path to certificate]` to the provisioning command. + 1. Set access permissions to allow the `provisionmcc.sh` script within the provisioning package directory to execute. 1. Replace the values in the following provisioning command before running it on the host machine. diff --git a/windows/deployment/do/mcc-ent-deploy-to-windows.md b/windows/deployment/do/mcc-ent-deploy-to-windows.md index 9beba0bc515..30134d9e04c 100644 --- a/windows/deployment/do/mcc-ent-deploy-to-windows.md +++ b/windows/deployment/do/mcc-ent-deploy-to-windows.md @@ -28,13 +28,13 @@ Before deploying Connected Cache to a Windows host machine, ensure that the host 1. Within the Azure portal, navigate to the **Provisioning** tab of your cache node and copy the provisioning command. 1. Download the provisioning package using the option at the top of the Cache Node Configuration page and extract the archive onto the host machine. - >[!Note] - >* The provisioning package should be extracted to a directory that isn't synced to OneDrive, as the sychronization process will interfere with the installation. It is recommended to extract the provisioning package to the root directory of the host machine (e.g. C:\mccInstaller) + >[!Note] + >* The provisioning package should be extracted to a directory that isn't synced to OneDrive, as the sychronization process will interfere with the installation. It is recommended to extract the provisioning package to the root directory of the host machine (e.g. C:\mccInstaller) 1. Open a PowerShell window *as administrator* on the host machine, then change directory to the extracted provisioning package. - >[!Note] - >* If you are deploying your cache node to a host machine that uses a TLS-inspecting proxy (e.g. ZScaler), ensure that you've [configured the proxy settings](mcc-ent-create-resource-and-cache.md#proxy-settings) for your cache node, then place the proxy certificate file (.pem) in the extracted provisioning package directory and add `-proxyTlsCertificatePemFileName [path to certificate]` to the provisioning command. + >[!Note] + >* If you are deploying your cache node to a host machine that uses a TLS-inspecting proxy (e.g. ZScaler), ensure that you've [configured the proxy settings](mcc-ent-create-resource-and-cache.md#proxy-settings) for your cache node, then place the proxy certificate file (.pem) in the extracted provisioning package directory and add `-proxyTlsCertificatePemFileName [path to certificate]` to the provisioning command. 1. Set the Execution Policy to *Unrestricted* to allow the provisioning scripts to run. 1. Create a `$User` PowerShell variable containing the username of the account you intend to designate as the Connected Cache runtime account. @@ -59,22 +59,33 @@ To deploy a cache node programmatically, you'll need to use Azure CLI to get the ``` 1. Save the resulting output. These values will be passed as parameters within the provisioning command. -1. Download and extract the [Connected Cache provisioning package for Windows](https://aka.ms/MCC-Ent-InstallScript-WSL) to your host machine. **Note**: The installer should be in a folder that isn't synced to OneDrive, as this will interfere with the installation process. +1. Download and extract the [Connected Cache provisioning package for Windows](https://aka.ms/MCC-Ent-InstallScript-WSL) to your host machine. + + >[!Note] + >* The provisioning package should be extracted to a directory that isn't synced to OneDrive, as the sychronization process will interfere with the installation. It is recommended to extract the provisioning package to the root directory of the host machine (e.g. C:\mccInstaller) + 1. Open a PowerShell window *as administrator* on the host machine, then change directory to the extracted provisioning package. + + >[!Note] + >* If you are deploying your cache node to a host machine that uses a TLS-inspecting proxy (e.g. ZScaler), ensure that you've [configured the proxy settings](mcc-ent-create-resource-and-cache.md#proxy-settings) for your cache node, then place the proxy certificate file (.pem) in the extracted provisioning package directory and add `-proxyTlsCertificatePath [path to certificate]` to the provisioning command. + 1. Set the Execution Policy to *Unrestricted* to allow the provisioning scripts to run. -1. Create a `$User` environment variable containing the username of the account you intend to designate as the Connected Cache runtime account. +1. Create a `$User` PowerShell variable containing the username of the account you intend to designate as the Connected Cache runtime account. - For gMSAs, the value should be formatted as `"Domain\Username$"`. For Local User accounts, `$User` should be formatted as `"LocalMachineName\Username"`. + For gMSAs, the `$User` PowerShell variable should be formatted as `"Domain\Username$"`. For Local User accounts, the `$User` PowerShell variable should be formatted as `"LocalMachineName\Username"`. - If you're using a Local User account as the Connected Cache runtime account, you'll also need to create a [PSCredential Object](/dotnet/api/system.management.automation.pscredential) named `$myLocalAccountCredential`. **Note**: You'll need to apply a local security policy to permit the Local User account to `Log on as a batch job`. + If you're using a Local User account as the Connected Cache runtime account, you'll also need to create a [PSCredential Object](/dotnet/api/system.management.automation.pscredential) named `$myLocalAccountCredential`. -1. Replace the values in the following provisioning command before running it on the host machine. **Note**: `-mccLocalAccountCredential $myLocalAccountCredential` is only needed if you're using a Local User account as the Connected Cache runtime account. + >[!Note] + >* You'll need to apply a local security policy to permit the Local User account to `Log on as a batch job`. + +1. Replace the values in the following provisioning command before running it on the host machine. ```powershell-interactive ./provisionmcconwsl.ps1 -installationFolder c:\mccwsl01 -customerid [enter mccResourceId here] -cachenodeid [enter cacheNodeId here] -customerkey [enter customerKey here] -registrationkey [enter registration key] -cacheDrives "/var/mcc,enter drive size" -shouldUseProxy [enter true if present, enter false if not] -proxyurl "http://[enter proxy host name]:[enter port]" -mccRunTimeAccount $User -mccLocalAccountCredential $myLocalAccountCredential ``` ---- +--- ## Steps to point Windows client devices at Connected Cache node From ecdd05bca34a9fbca34f1fbd7107cba517381423 Mon Sep 17 00:00:00 2001 From: chrisjlin <36452239+chrisjlin@users.noreply.github.com> Date: Thu, 21 Nov 2024 17:07:23 -0800 Subject: [PATCH 06/18] Correcting syntax for pem file parameters --- windows/deployment/do/mcc-ent-deploy-to-linux.md | 4 ++-- windows/deployment/do/mcc-ent-deploy-to-windows.md | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/windows/deployment/do/mcc-ent-deploy-to-linux.md b/windows/deployment/do/mcc-ent-deploy-to-linux.md index 583667db470..6ca1ef61920 100644 --- a/windows/deployment/do/mcc-ent-deploy-to-linux.md +++ b/windows/deployment/do/mcc-ent-deploy-to-linux.md @@ -28,7 +28,7 @@ Before deploying Connected Cache to a Linux host machine, ensure that the host m 1. Open a command line window *as administrator* on the host machine, then change directory to the extracted provisioning package. >[!Note] - >* If you are deploying your cache node to a host machine that uses a TLS-inspecting proxy (e.g. ZScaler), ensure that you've [configured the proxy settings](mcc-ent-create-resource-and-cache.md#proxy-settings) for your cache node, then place the proxy certificate file (.pem) in the extracted provisioning package directory and add `-proxyTlsCertificatePath [path to certificate]` to the provisioning command. + >* If you are deploying your cache node to a host machine that uses a TLS-inspecting proxy (e.g. ZScaler), ensure that you've [configured the proxy settings](mcc-ent-create-resource-and-cache.md#proxy-settings) for your cache node, then place the proxy certificate file (.pem) in the extracted provisioning package directory and add `proxyTlsCertificatePath="/path/to/pem/file"` to the provisioning command. 1. Set access permissions to allow the `provisionmcc.sh` script within the provisioning package directory to execute. 1. Run the provisioning command on the host machine. @@ -48,7 +48,7 @@ To deploy a cache node programmatically, you'll need to use Azure CLI to get the 1. Open a command line window *as administrator* on the host machine, then change directory to the extracted provisioning package. >[!Note] - >* If you are deploying your cache node to a host machine that uses a TLS-inspecting proxy (e.g. ZScaler), ensure that you've [configured the proxy settings](mcc-ent-create-resource-and-cache.md#proxy-settings) for your cache node, then place the proxy certificate file (.pem) in the extracted provisioning package directory and add `-proxyTlsCertificatePath [path to certificate]` to the provisioning command. + >* If you are deploying your cache node to a host machine that uses a TLS-inspecting proxy (e.g. ZScaler), ensure that you've [configured the proxy settings](mcc-ent-create-resource-and-cache.md#proxy-settings) for your cache node, then place the proxy certificate file (.pem) in the extracted provisioning package directory and add `proxyTlsCertificatePath="/path/to/pem/file"` to the provisioning command. 1. Set access permissions to allow the `provisionmcc.sh` script within the provisioning package directory to execute. 1. Replace the values in the following provisioning command before running it on the host machine. diff --git a/windows/deployment/do/mcc-ent-deploy-to-windows.md b/windows/deployment/do/mcc-ent-deploy-to-windows.md index 30134d9e04c..105def16cff 100644 --- a/windows/deployment/do/mcc-ent-deploy-to-windows.md +++ b/windows/deployment/do/mcc-ent-deploy-to-windows.md @@ -34,7 +34,7 @@ Before deploying Connected Cache to a Windows host machine, ensure that the host 1. Open a PowerShell window *as administrator* on the host machine, then change directory to the extracted provisioning package. >[!Note] - >* If you are deploying your cache node to a host machine that uses a TLS-inspecting proxy (e.g. ZScaler), ensure that you've [configured the proxy settings](mcc-ent-create-resource-and-cache.md#proxy-settings) for your cache node, then place the proxy certificate file (.pem) in the extracted provisioning package directory and add `-proxyTlsCertificatePemFileName [path to certificate]` to the provisioning command. + >* If you are deploying your cache node to a host machine that uses a TLS-inspecting proxy (e.g. ZScaler), ensure that you've [configured the proxy settings](mcc-ent-create-resource-and-cache.md#proxy-settings) for your cache node, then place the proxy certificate file (.pem) in the extracted provisioning package directory and add `-proxyTlsCertificatePemFileName "path/to/pem/file"` to the provisioning command. 1. Set the Execution Policy to *Unrestricted* to allow the provisioning scripts to run. 1. Create a `$User` PowerShell variable containing the username of the account you intend to designate as the Connected Cache runtime account. @@ -67,7 +67,7 @@ To deploy a cache node programmatically, you'll need to use Azure CLI to get the 1. Open a PowerShell window *as administrator* on the host machine, then change directory to the extracted provisioning package. >[!Note] - >* If you are deploying your cache node to a host machine that uses a TLS-inspecting proxy (e.g. ZScaler), ensure that you've [configured the proxy settings](mcc-ent-create-resource-and-cache.md#proxy-settings) for your cache node, then place the proxy certificate file (.pem) in the extracted provisioning package directory and add `-proxyTlsCertificatePath [path to certificate]` to the provisioning command. + >* If you are deploying your cache node to a host machine that uses a TLS-inspecting proxy (e.g. ZScaler), ensure that you've [configured the proxy settings](mcc-ent-create-resource-and-cache.md#proxy-settings) for your cache node, then place the proxy certificate file (.pem) in the extracted provisioning package directory and add `-proxyTlsCertificatePath "path/to/pem/file"` to the provisioning command. 1. Set the Execution Policy to *Unrestricted* to allow the provisioning scripts to run. 1. Create a `$User` PowerShell variable containing the username of the account you intend to designate as the Connected Cache runtime account. From f891b13d125b95f92c3f8d9c0a7137bc573760de Mon Sep 17 00:00:00 2001 From: chrisjlin <36452239+chrisjlin@users.noreply.github.com> Date: Mon, 2 Dec 2024 16:42:28 -0800 Subject: [PATCH 07/18] Specify host machine type in pem file docs --- windows/deployment/do/mcc-ent-deploy-to-linux.md | 2 +- windows/deployment/do/mcc-ent-deploy-to-windows.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/windows/deployment/do/mcc-ent-deploy-to-linux.md b/windows/deployment/do/mcc-ent-deploy-to-linux.md index 6ca1ef61920..8280d47b342 100644 --- a/windows/deployment/do/mcc-ent-deploy-to-linux.md +++ b/windows/deployment/do/mcc-ent-deploy-to-linux.md @@ -28,7 +28,7 @@ Before deploying Connected Cache to a Linux host machine, ensure that the host m 1. Open a command line window *as administrator* on the host machine, then change directory to the extracted provisioning package. >[!Note] - >* If you are deploying your cache node to a host machine that uses a TLS-inspecting proxy (e.g. ZScaler), ensure that you've [configured the proxy settings](mcc-ent-create-resource-and-cache.md#proxy-settings) for your cache node, then place the proxy certificate file (.pem) in the extracted provisioning package directory and add `proxyTlsCertificatePath="/path/to/pem/file"` to the provisioning command. + >* If you are deploying your cache node to a Linux host machine that uses a TLS-inspecting proxy (e.g. ZScaler), ensure that you've [configured the proxy settings](mcc-ent-create-resource-and-cache.md#proxy-settings) for your cache node, then place the proxy certificate file (.pem) in the extracted provisioning package directory and add `proxyTlsCertificatePath="/path/to/pem/file"` to the provisioning command. 1. Set access permissions to allow the `provisionmcc.sh` script within the provisioning package directory to execute. 1. Run the provisioning command on the host machine. diff --git a/windows/deployment/do/mcc-ent-deploy-to-windows.md b/windows/deployment/do/mcc-ent-deploy-to-windows.md index 105def16cff..d55902c2ac8 100644 --- a/windows/deployment/do/mcc-ent-deploy-to-windows.md +++ b/windows/deployment/do/mcc-ent-deploy-to-windows.md @@ -34,7 +34,7 @@ Before deploying Connected Cache to a Windows host machine, ensure that the host 1. Open a PowerShell window *as administrator* on the host machine, then change directory to the extracted provisioning package. >[!Note] - >* If you are deploying your cache node to a host machine that uses a TLS-inspecting proxy (e.g. ZScaler), ensure that you've [configured the proxy settings](mcc-ent-create-resource-and-cache.md#proxy-settings) for your cache node, then place the proxy certificate file (.pem) in the extracted provisioning package directory and add `-proxyTlsCertificatePemFileName "path/to/pem/file"` to the provisioning command. + >* If you are deploying your cache node to a Windows host machine that uses a TLS-inspecting proxy (e.g. ZScaler), ensure that you've [configured the proxy settings](mcc-ent-create-resource-and-cache.md#proxy-settings) for your cache node, then place the proxy certificate file (.pem) in the extracted provisioning package directory and add `-proxyTlsCertificatePemFileName "path/to/pem/file"` to the provisioning command. 1. Set the Execution Policy to *Unrestricted* to allow the provisioning scripts to run. 1. Create a `$User` PowerShell variable containing the username of the account you intend to designate as the Connected Cache runtime account. From b624ad7c80b3caba7fe7ed0d11f0de845ddb7a51 Mon Sep 17 00:00:00 2001 From: chrisjlin <36452239+chrisjlin@users.noreply.github.com> Date: Mon, 2 Dec 2024 17:01:45 -0800 Subject: [PATCH 08/18] Fix pem param for Windows --- windows/deployment/do/mcc-ent-deploy-to-windows.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/deployment/do/mcc-ent-deploy-to-windows.md b/windows/deployment/do/mcc-ent-deploy-to-windows.md index d55902c2ac8..cee4f0975b1 100644 --- a/windows/deployment/do/mcc-ent-deploy-to-windows.md +++ b/windows/deployment/do/mcc-ent-deploy-to-windows.md @@ -34,7 +34,7 @@ Before deploying Connected Cache to a Windows host machine, ensure that the host 1. Open a PowerShell window *as administrator* on the host machine, then change directory to the extracted provisioning package. >[!Note] - >* If you are deploying your cache node to a Windows host machine that uses a TLS-inspecting proxy (e.g. ZScaler), ensure that you've [configured the proxy settings](mcc-ent-create-resource-and-cache.md#proxy-settings) for your cache node, then place the proxy certificate file (.pem) in the extracted provisioning package directory and add `-proxyTlsCertificatePemFileName "path/to/pem/file"` to the provisioning command. + >* If you are deploying your cache node to a Windows host machine that uses a TLS-inspecting proxy (e.g. ZScaler), ensure that you've [configured the proxy settings](mcc-ent-create-resource-and-cache.md#proxy-settings) for your cache node, then place the proxy certificate file (.pem) in the extracted provisioning package directory and add `-proxyTlsCertificatePemFileName "mycert.pem"` to the provisioning command. 1. Set the Execution Policy to *Unrestricted* to allow the provisioning scripts to run. 1. Create a `$User` PowerShell variable containing the username of the account you intend to designate as the Connected Cache runtime account. From a0016be2399b7dd6c14563c04fb6f9ca3d56dca0 Mon Sep 17 00:00:00 2001 From: chrisjlin <36452239+chrisjlin@users.noreply.github.com> Date: Mon, 2 Dec 2024 17:16:34 -0800 Subject: [PATCH 09/18] Added desc of other WSL logs, support bundle generation instructions --- .../deployment/do/mcc-ent-troubleshooting.md | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/windows/deployment/do/mcc-ent-troubleshooting.md b/windows/deployment/do/mcc-ent-troubleshooting.md index 0f5b02bc004..7acb2a1a510 100644 --- a/windows/deployment/do/mcc-ent-troubleshooting.md +++ b/windows/deployment/do/mcc-ent-troubleshooting.md @@ -60,6 +60,16 @@ There are three types of installation log files: The Registered Task Transcript is usually the most useful for diagnosing the installation issue. +### Collecting other Windows-hosted logs + +Once the cache node has been successfully installed on the Windows host machine, it will periodically write log files to the installation directory (`C:\mccwsl01\` by default). + +You can expect to see the following types of log files: + +1. **WSL_Mcc_Monitor_FromRegisteredTask_Transcript**: This log file records the output of the "MCC_Monitor_Task" scheduled task that is responsible for ensuring that the Connected Cache continues running. +1. **WSL_Mcc_UserUninstall_Transcript**: This log file records the ouput of the "uninstallmcconwsl.ps1" script that the user can run to uninstall MCC software from the host machine. +1. **WSL_Mcc_Uninstall_FromRegisteredTask_Transcript**: This log file records the output of the "MCC_Uninstall_Task" scheduled task that is responsible for uninstalling the MCC software from the host machine when called by the "uninstallmcconwsl.ps1" script. + ### WSL2 fails to install with message "A specified logon session does not exist" If you are encountering this failure message when attempting to run the PowerShell command `wsl.exe --install --no-distribution` on your Windows host machine, verify that you are logged on as a local administrator and running the command from an elevated PowerShell window. @@ -106,6 +116,23 @@ If it shows the **edgeAgent** and **edgeHub** containers but doesn't show **MCC* You can also reboot the IoT Edge runtime using `sudo systemctl restart iotedge`. +## Generating cache node diagnostic support bundle + +You can generate a support bundle with detailed diagnostic information by running the `collectMccDiagnostics.sh` script found in the MCC diagnostics folder. + +For Windows host machines, you will need to do the following: + +1. Launch a PowerShell process as the account specified as the runtime account during the Connected Cache install +1. Run `wsl -d Ubuntu-22.04-Mcc-Base` to access the Linux distribution that hosts the Connected Cache container +1. Change directory to `path/to/collectMccDiagnostics.sh` +1. Run the script +1. Extract the generated support bundle from `path/to/support/bundle` to `path/to/windows/host` + +For Linux host machines, you will need to do the following: + +1. Change directory to `path/to/collectMccDiagnostics.sh` +1. Run the script + ## Troubleshooting cache node monitoring Connected Cache node status and performance can be [monitored using the Azure portal user interface](mcc-ent-monitoring.md). From 93735fb47ff548f785ed441a2a3a3778f4a3119f Mon Sep 17 00:00:00 2001 From: chrisjlin <36452239+chrisjlin@users.noreply.github.com> Date: Mon, 2 Dec 2024 18:01:58 -0800 Subject: [PATCH 10/18] Adding known issues section to troubleshooting page --- windows/deployment/do/mcc-ent-troubleshooting.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/windows/deployment/do/mcc-ent-troubleshooting.md b/windows/deployment/do/mcc-ent-troubleshooting.md index 7acb2a1a510..e9dee504935 100644 --- a/windows/deployment/do/mcc-ent-troubleshooting.md +++ b/windows/deployment/do/mcc-ent-troubleshooting.md @@ -19,6 +19,18 @@ ms.date: 10/30/2024 This article contains instructions on how to troubleshoot different issues you may encounter while using Connected Cache. These issues are categorized by the task in which they may be encountered. +## Known issues + +This section describes known issues with the latest release of Microsoft Connected Cache for Enterprise and Edcuation. See the [Release Notes page](mcc-ent-release-notes.md) for more details on the fixes included in the latest release. + +### Cache node monitoring chart in the Azure Portal user interface displays incorrect information + +### Script provisionmcconwsl.ps1 fails when executed on a Windows 11 host machine configured to use Japanese language + +In the Connected Cache installation script (provisionmcconwsl.ps1), the check processing is executed until the value of the last execution code (Last Result) of the installation task becomes 0 in the following processing. However, in Japanese OS, the return value is null because "Last Result" is displayed, and an exception occurs. + +As a temporary workaround, the above error does not occur by changing the language setting of the local administrator user from Japanese to English and then executing the script. + ## Steps to obtain an Azure subscription ID From 19446c58d60c1cc8ae1f034534bde2837afca6a4 Mon Sep 17 00:00:00 2001 From: chrisjlin <36452239+chrisjlin@users.noreply.github.com> Date: Tue, 3 Dec 2024 11:20:27 -0800 Subject: [PATCH 11/18] Adding instructions for generating diagnostic support bundle to troubleshooting page --- .../deployment/do/mcc-ent-troubleshooting.md | 21 ++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/windows/deployment/do/mcc-ent-troubleshooting.md b/windows/deployment/do/mcc-ent-troubleshooting.md index e9dee504935..5b8182d8200 100644 --- a/windows/deployment/do/mcc-ent-troubleshooting.md +++ b/windows/deployment/do/mcc-ent-troubleshooting.md @@ -130,20 +130,27 @@ You can also reboot the IoT Edge runtime using `sudo systemctl restart iotedge`. ## Generating cache node diagnostic support bundle -You can generate a support bundle with detailed diagnostic information by running the `collectMccDiagnostics.sh` script found in the MCC diagnostics folder. +You can generate a support bundle with detailed diagnostic information by running the `collectMccDiagnostics.sh` script included in the installation package. For Windows host machines, you will need to do the following: 1. Launch a PowerShell process as the account specified as the runtime account during the Connected Cache install -1. Run `wsl -d Ubuntu-22.04-Mcc-Base` to access the Linux distribution that hosts the Connected Cache container -1. Change directory to `path/to/collectMccDiagnostics.sh` -1. Run the script -1. Extract the generated support bundle from `path/to/support/bundle` to `path/to/windows/host` +1. Change directory to the "MccScripts" directory within the extracted installation package and verify the presence of `collectmccdiagnostics.sh` +1. Run `wsl bash collectmccdiagnostics.sh` to generate the diagnostic support bundle +1. Once the script has completed, note the console output describing the location of the diagnostic support bundle + + For example, "Successfully zipped package, please send file created at /etc/mccdiagnostics/support_bundle_2024_12_03__11_05_39__AM.tar.gz" +1. Run the `wsl cp` command to copy the support bundle from the location within the Ubuntu distribution to the Windows host OS + + For example, `wsl cp /etc/mccdiagnostics/support_bundle_2024_12_03__11_05_39__AM.tar.gz /mnt/c/mccwsl01/SupportBundles` For Linux host machines, you will need to do the following: -1. Change directory to `path/to/collectMccDiagnostics.sh` -1. Run the script +1. Change directory to the "MccScripts" directory within the extracted installation package and verify the presence of `collectmccdiagnostics.sh` +1. Run `collectmccdiagnostics.sh` to generate the diagnostic support bundle +1. Once the script has completed, note the console output describing the location of the diagnostic support bundle + + For example, "Successfully zipped package, please send file created at /etc/mccdiagnostics/support_bundle_2024_12_03__11_05_39__AM.tar.gz" ## Troubleshooting cache node monitoring From 9b587a3d306d896431e20734cfdbc9f7549fe4e1 Mon Sep 17 00:00:00 2001 From: chrisjlin <36452239+chrisjlin@users.noreply.github.com> Date: Thu, 5 Dec 2024 09:08:04 -0800 Subject: [PATCH 12/18] Acrolinx changes to Troubleshooting --- .../deployment/do/mcc-ent-troubleshooting.md | 27 ++++++++++--------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/windows/deployment/do/mcc-ent-troubleshooting.md b/windows/deployment/do/mcc-ent-troubleshooting.md index 5b8182d8200..53ab7f28366 100644 --- a/windows/deployment/do/mcc-ent-troubleshooting.md +++ b/windows/deployment/do/mcc-ent-troubleshooting.md @@ -21,15 +21,15 @@ This article contains instructions on how to troubleshoot different issues you m ## Known issues -This section describes known issues with the latest release of Microsoft Connected Cache for Enterprise and Edcuation. See the [Release Notes page](mcc-ent-release-notes.md) for more details on the fixes included in the latest release. +This section describes known issues with the latest release of Microsoft Connected Cache for Enterprise and Education. See the [Release Notes page](mcc-ent-release-notes.md) for more details on the fixes included in the latest release. -### Cache node monitoring chart in the Azure Portal user interface displays incorrect information +### Cache node monitoring chart in the Azure portal user interface displays incorrect information ### Script provisionmcconwsl.ps1 fails when executed on a Windows 11 host machine configured to use Japanese language In the Connected Cache installation script (provisionmcconwsl.ps1), the check processing is executed until the value of the last execution code (Last Result) of the installation task becomes 0 in the following processing. However, in Japanese OS, the return value is null because "Last Result" is displayed, and an exception occurs. -As a temporary workaround, the above error does not occur by changing the language setting of the local administrator user from Japanese to English and then executing the script. +As a temporary workaround, the above error doesn't occur by changing the language setting of the local administrator user from Japanese to English and then executing the script. ## Steps to obtain an Azure subscription ID @@ -50,7 +50,7 @@ If you're encountering a validation error, check that you have filled out all re If your configuration doesn't appear to be taking effect, check that you have selected the **Save** option at the top of the configuration page in the Azure portal user interface. -If you have changed the proxy configuration, you will need to re-provision the Connected Cache software on the host machine for the proxy configuration to take effect. +If you have changed the proxy configuration, you'll need to re-provision the Connected Cache software on the host machine for the proxy configuration to take effect. ## Troubleshooting cache nodes created during early preview @@ -62,7 +62,7 @@ As such, we strongly recommend you [recreate your existing resources in Azure](m ### Collecting Windows-hosted installation logs -[Deploying a Connected Cache node to a Windows host machine](mcc-ent-deploy-to-windows.md) involves running a series of PowerShell scripts contained within the Windows provisioning package. These scripts will attempt to write log files to the installation directory specified in the provisioning command (`C:\mccwsl01\InstallLogs` by default). +[Deploying a Connected Cache node to a Windows host machine](mcc-ent-deploy-to-windows.md) involves running a series of PowerShell scripts contained within the Windows provisioning package. These scripts attempt to write log files to the installation directory specified in the provisioning command (`C:\mccwsl01\InstallLogs` by default). There are three types of installation log files: @@ -79,12 +79,12 @@ Once the cache node has been successfully installed on the Windows host machine, You can expect to see the following types of log files: 1. **WSL_Mcc_Monitor_FromRegisteredTask_Transcript**: This log file records the output of the "MCC_Monitor_Task" scheduled task that is responsible for ensuring that the Connected Cache continues running. -1. **WSL_Mcc_UserUninstall_Transcript**: This log file records the ouput of the "uninstallmcconwsl.ps1" script that the user can run to uninstall MCC software from the host machine. +1. **WSL_Mcc_UserUninstall_Transcript**: This log file records the output of the "uninstallmcconwsl.ps1" script that the user can run to uninstall MCC software from the host machine. 1. **WSL_Mcc_Uninstall_FromRegisteredTask_Transcript**: This log file records the output of the "MCC_Uninstall_Task" scheduled task that is responsible for uninstalling the MCC software from the host machine when called by the "uninstallmcconwsl.ps1" script. -### WSL2 fails to install with message "A specified logon session does not exist" +### WSL2 fails to install with message "A specified logon session doesn't exist" -If you are encountering this failure message when attempting to run the PowerShell command `wsl.exe --install --no-distribution` on your Windows host machine, verify that you are logged on as a local administrator and running the command from an elevated PowerShell window. +If you're encountering this failure message when attempting to run the PowerShell command `wsl.exe --install --no-distribution` on your Windows host machine, verify that you're logged on as a local administrator and running the command from an elevated PowerShell window. ### Updating the WSL2 kernel @@ -132,21 +132,22 @@ You can also reboot the IoT Edge runtime using `sudo systemctl restart iotedge`. You can generate a support bundle with detailed diagnostic information by running the `collectMccDiagnostics.sh` script included in the installation package. -For Windows host machines, you will need to do the following: +For Windows host machines, you'll need to do the following: 1. Launch a PowerShell process as the account specified as the runtime account during the Connected Cache install -1. Change directory to the "MccScripts" directory within the extracted installation package and verify the presence of `collectmccdiagnostics.sh` +1. Change directory to the "MccScripts" directory within the extracted Connected Cache provisioning package and verify the presence of `collectmccdiagnostics.sh` 1. Run `wsl bash collectmccdiagnostics.sh` to generate the diagnostic support bundle 1. Once the script has completed, note the console output describing the location of the diagnostic support bundle For example, "Successfully zipped package, please send file created at /etc/mccdiagnostics/support_bundle_2024_12_03__11_05_39__AM.tar.gz" + 1. Run the `wsl cp` command to copy the support bundle from the location within the Ubuntu distribution to the Windows host OS For example, `wsl cp /etc/mccdiagnostics/support_bundle_2024_12_03__11_05_39__AM.tar.gz /mnt/c/mccwsl01/SupportBundles` -For Linux host machines, you will need to do the following: +For Linux host machines, you'll need to do the following: -1. Change directory to the "MccScripts" directory within the extracted installation package and verify the presence of `collectmccdiagnostics.sh` +1. Change directory to the "MccScripts" directory within the extracted Connected Cache provisioning package and verify the presence of `collectmccdiagnostics.sh` 1. Run `collectmccdiagnostics.sh` to generate the diagnostic support bundle 1. Once the script has completed, note the console output describing the location of the diagnostic support bundle @@ -162,4 +163,4 @@ If the issue persists, check that you have configured the Timespan and Cache nod ## Diagnose and Solve -You can also use the **Diagnose and solve problems** functionality provided by the Azure portal interface. This tab within the Microsoft Connected Cache Azure resource will walk you through a few prompts to help narrow down the solution to your issue. +You can also use the **Diagnose and solve problems** functionality provided by the Azure portal interface. This tab within the Microsoft Connected Cache Azure resource walks you through a few prompts to help narrow down the solution to your issue. From 3d286ca6116cc89b5f67e219cdc5016e9cdbe343 Mon Sep 17 00:00:00 2001 From: chrisjlin <36452239+chrisjlin@users.noreply.github.com> Date: Thu, 5 Dec 2024 09:11:36 -0800 Subject: [PATCH 13/18] Acrolinx changes to Monitoring --- windows/deployment/do/mcc-ent-monitoring.md | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/windows/deployment/do/mcc-ent-monitoring.md b/windows/deployment/do/mcc-ent-monitoring.md index 9a4894896ee..08e45da4171 100644 --- a/windows/deployment/do/mcc-ent-monitoring.md +++ b/windows/deployment/do/mcc-ent-monitoring.md @@ -18,25 +18,27 @@ ms.date: 10/30/2024 Tracking the status and performance of your Connected Cache node is essential to making sure you're getting the most out of the service. -For basic monitoring, navigate to the **Overview** tab. Here you'll be able to view a collection of predefined metrics and charts. All the monitoring in this section will function right after your Connected Cache node has been deployed. +For basic monitoring, navigate to the **Overview** tab. Here you can view a collection of predefined metrics and charts. All the monitoring in this section will function right after your Connected Cache node has been deployed. -For advanced monitoring, navigate to the **Metrics** section under the **Monitoring** tab. Here you'll be able to access more sampled metrics (hits, misses, inbound traffic) and specify different aggregations (count, avg, min, max, sum). You can then use this data to create customized charts and configure alerts. +For advanced monitoring, navigate to the **Metrics** section under the **Monitoring** tab. Here you can access more sampled metrics (hits, misses, inbound traffic) and specify different aggregations (count, avg, min, max, sum). You can then use this data to create customized charts and configure alerts. -Between the two monitoring sections, you'll be able to gather essential insights into the health, performance, and efficiency of your Connected Cache nodes. +Using the two monitoring sections, you can gather essential insights into the health, performance, and efficiency of your Connected Cache nodes. + +You can view more details about each cache node by navigating to the **Cache Nodes** section under the **Cache Node Management** tab. This page displays cache node information such as Status, Host machine OS, Software Version, and Cache Node ID. ## Basic Monitoring ### Cache node summary -Below are the metrics you'll find in the **Cache Node Summary** dashboard, along with their descriptions. This dashboard only reflects data received from cache nodes in the last 24 hours. +Below are the metrics found in the **Cache Node Summary** dashboard, along with their descriptions. This dashboard only reflects data received from cache nodes in the last 24 hours. ![Screenshot of cache node summary in the Azure portal interface.](../images/mcc-ent-cache-node-summary.png) | Metric | Description | | --- | --- | -| Healthy nodes | Your Connected Cache node will periodically send heartbeat messages to the Connected Cache service. If the Connected Cache service has received a heartbeat message from your Connected Cache node in the last 24 hours, the node will be labeled as healthy. | -| Unhealthy nodes | If the Connected Cache service hasn't received a heartbeat message from your Connected Cache node in the last 24 hours, the node will be labeled as unhealthy. | -| Max in | The maximum ingress in Megabits per second (Mbps) that your node has pulled from CDN endpoints in the last 24 hours. | +| Healthy nodes | Your Connected Cache node will periodically send heartbeat messages to the Connected Cache service. If the Connected Cache service has received a heartbeat message from your Connected Cache node in the last 24 hours, the node is labeled as healthy. | +| Unhealthy nodes | If the Connected Cache service hasn't received a heartbeat message from your Connected Cache node in the last 24 hours, the node is labeled as unhealthy. | +| Max in | The maximum ingress in Megabits per second (Mbps) that your node has pulled from Content Delivery Network (CDN) endpoints in the last 24 hours. | | Max out | The minimum egress in Mbps that your node has sent to Windows devices in its network over the last 24 hours. | | Average in | The average ingress in Mbps that your node has pulled from CDN endpoints in the last 24 hours. | | Average out | The average egress in Mbps that your node has sent to Windows devices in its network over the last 24 hours. | @@ -79,13 +81,13 @@ Listed below are the metrics you can access in this section: ### Customizable Dashboards -Once you select the charts you would like to track, you can save them to a personalized dashboard. You can configure the chart title, filters, range, legend, and more. You can also use this personalized dashboard to set up alerts that will notify you if your Connected Cache node dips in performance. +Once you select the charts you would like to track, you can save them to a personalized dashboard. You can configure the chart title, filters, range, legend, and more. You can also use this personalized dashboard to set up alerts that notify you if your Connected Cache node dips in performance. Some example scenarios where you would want to set up a custom alert: - My Connected Cache node is being shown as unhealthy and I want to know exactly when it stopped egressing last - A new Microsoft Word update was released last night and I want to know if my Connected Cache node is helping deliver this content to my Windows devices -## Additional Metrics +## Client-Side Metrics Your Connected Cache node can keep track of how much content has been sent to requesting Windows devices, but the node can't track whether the content was successfully received by the device. For more information on accessing client-side data from your Windows devices, see [Monitor Delivery Optimization](waas-delivery-optimization-monitor.md). From 74f2546b0fcd507c15b12e06bc404aeec23fc9f6 Mon Sep 17 00:00:00 2001 From: chrisjlin <36452239+chrisjlin@users.noreply.github.com> Date: Thu, 5 Dec 2024 09:23:01 -0800 Subject: [PATCH 14/18] Add cache node details in Monitoring --- .../do/images/mcc-ent-cache-node-details.png | Bin 0 -> 18830 bytes windows/deployment/do/mcc-ent-monitoring.md | 18 +++++++++++++++--- 2 files changed, 15 insertions(+), 3 deletions(-) create mode 100644 windows/deployment/do/images/mcc-ent-cache-node-details.png diff --git a/windows/deployment/do/images/mcc-ent-cache-node-details.png b/windows/deployment/do/images/mcc-ent-cache-node-details.png new file mode 100644 index 0000000000000000000000000000000000000000..f73bd2e006e061aa96880bad4e6a4676b89214eb GIT binary patch literal 18830 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 Gp$Pz;n+a6_ literal 0 HcmV?d00001 diff --git a/windows/deployment/do/mcc-ent-monitoring.md b/windows/deployment/do/mcc-ent-monitoring.md index 08e45da4171..98c00bdcf46 100644 --- a/windows/deployment/do/mcc-ent-monitoring.md +++ b/windows/deployment/do/mcc-ent-monitoring.md @@ -18,14 +18,12 @@ ms.date: 10/30/2024 Tracking the status and performance of your Connected Cache node is essential to making sure you're getting the most out of the service. -For basic monitoring, navigate to the **Overview** tab. Here you can view a collection of predefined metrics and charts. All the monitoring in this section will function right after your Connected Cache node has been deployed. +For basic monitoring, navigate to the **Overview** tab. Here you can view a collection of predefined metrics and charts. All the monitoring in this section will function right after your Connected Cache node has been deployed. You can view more details about each cache node by navigating to the **Cache Nodes** section under the **Cache Node Management** tab. This page displays cache node information such as Status, Host machine OS, Software Version, and Cache Node ID. For advanced monitoring, navigate to the **Metrics** section under the **Monitoring** tab. Here you can access more sampled metrics (hits, misses, inbound traffic) and specify different aggregations (count, avg, min, max, sum). You can then use this data to create customized charts and configure alerts. Using the two monitoring sections, you can gather essential insights into the health, performance, and efficiency of your Connected Cache nodes. -You can view more details about each cache node by navigating to the **Cache Nodes** section under the **Cache Node Management** tab. This page displays cache node information such as Status, Host machine OS, Software Version, and Cache Node ID. - ## Basic Monitoring ### Cache node summary @@ -67,6 +65,20 @@ This chart displays the volume of each supported content type in bytes (B) that The content types displayed in the chart each have a distinct color and are sorted in descending order of volume. The bar chart is stacked such that you can visually compare total volume being delivered at different points in time. +### Cache node details + +The **Cache Nodes** section under the **Cache Node Management** tab displays cache node information such as Status, Host machine OS, Software Version, and Cache Node ID. + +![Screenshot of cache node details in the Azure portal interface.](../images/mcc-ent-cache-node-details.png) + +| Metric | Description | +| --- | --- | +| Cache node name | The user-defined name of the cache node. | +| Status | The heartbeat status of the cache node. | +| OS | The host machine OS that this cache node is compatible with. | +| Software version | The version number of the cache node's Connected Cache container. | +| Cache node ID | The unique identifier of the cache node. | + ## Advanced Monitoring To expand upon the metrics shown in the Overview tab, navigate to the **Metrics** tab in the left side toolbar of Azure portal. From 066807a6806de46a55aec6465ba2902fd6040709 Mon Sep 17 00:00:00 2001 From: chrisjlin <36452239+chrisjlin@users.noreply.github.com> Date: Thu, 5 Dec 2024 09:25:12 -0800 Subject: [PATCH 15/18] Fixing cache node details image location --- .../{do => }/images/mcc-ent-cache-node-details.png | Bin 1 file changed, 0 insertions(+), 0 deletions(-) rename windows/deployment/{do => }/images/mcc-ent-cache-node-details.png (100%) diff --git a/windows/deployment/do/images/mcc-ent-cache-node-details.png b/windows/deployment/images/mcc-ent-cache-node-details.png similarity index 100% rename from windows/deployment/do/images/mcc-ent-cache-node-details.png rename to windows/deployment/images/mcc-ent-cache-node-details.png From 93d9e761519d07efdb1233ae0948d1299b05d791 Mon Sep 17 00:00:00 2001 From: chrisjlin <36452239+chrisjlin@users.noreply.github.com> Date: Fri, 6 Dec 2024 12:42:32 -0800 Subject: [PATCH 16/18] Adding port forwarding fix to Troubleshooting --- windows/deployment/do/mcc-ent-troubleshooting.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/windows/deployment/do/mcc-ent-troubleshooting.md b/windows/deployment/do/mcc-ent-troubleshooting.md index 53ab7f28366..ee7d14c089c 100644 --- a/windows/deployment/do/mcc-ent-troubleshooting.md +++ b/windows/deployment/do/mcc-ent-troubleshooting.md @@ -116,6 +116,20 @@ You can use Task Scheduler on the host machine to check the status of this sched > [!Note] > If the password of the runtime account changes, you'll need to update the user in all of the Connected Cache scheduled tasks in order for the Connected Cache node to continue functioning properly. +### Cache node successfully deployed but not serving requests + +If your cache node is not responding to requests outside of localhost, it may be because the host machine's port forwarding rules were not correctly set during Connected Cache installation. + +To check your host machine's port forwarding rules, use the following PowerShell command. + +`netsh interface portproxy show v4tov4` + +If you do not see any port forwarding rules for port 80 to 0.0.0.0, you can run the following command from an elevated PowerShell instance to set the proper forwarding to WSL. + +`netsh interface portproxy add v4tov4 listenport=80 listenaddress=0.0.0.0 connectport=80 connectaddress=` + +You can retrieve the WSL IP Address from the `wslip.txt` file that should be present in the installation directory you specified in the Connected Cache provisioning command ("c:\mccwsl01" by default). + ## Troubleshooting cache node deployment to Linux host machine [Deploying a Connected Cache node to a Linux host machine](mcc-ent-deploy-to-linux.md) involves running a series of Bash scripts contained within the Linux provisioning package. From 925e8de75ba6cfa5ed64272244bc79a371a8d9df Mon Sep 17 00:00:00 2001 From: chrisjlin <36452239+chrisjlin@users.noreply.github.com> Date: Fri, 6 Dec 2024 12:43:42 -0800 Subject: [PATCH 17/18] Acrolinx improvements to Troubleshooting --- windows/deployment/do/mcc-ent-troubleshooting.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/windows/deployment/do/mcc-ent-troubleshooting.md b/windows/deployment/do/mcc-ent-troubleshooting.md index ee7d14c089c..c814c909f2d 100644 --- a/windows/deployment/do/mcc-ent-troubleshooting.md +++ b/windows/deployment/do/mcc-ent-troubleshooting.md @@ -118,13 +118,13 @@ You can use Task Scheduler on the host machine to check the status of this sched ### Cache node successfully deployed but not serving requests -If your cache node is not responding to requests outside of localhost, it may be because the host machine's port forwarding rules were not correctly set during Connected Cache installation. +If your cache node isn't responding to requests outside of localhost, it may be because the host machine's port forwarding rules weren't correctly set during Connected Cache installation. To check your host machine's port forwarding rules, use the following PowerShell command. `netsh interface portproxy show v4tov4` -If you do not see any port forwarding rules for port 80 to 0.0.0.0, you can run the following command from an elevated PowerShell instance to set the proper forwarding to WSL. +If you don't see any port forwarding rules for port 80 to 0.0.0.0, you can run the following command from an elevated PowerShell instance to set the proper forwarding to WSL. `netsh interface portproxy add v4tov4 listenport=80 listenaddress=0.0.0.0 connectport=80 connectaddress=` From 47f916c111d7a940f5e50dacb1643f7f0de6f8ad Mon Sep 17 00:00:00 2001 From: Meghan Stewart <33289333+mestew@users.noreply.github.com> Date: Fri, 6 Dec 2024 14:05:32 -0800 Subject: [PATCH 18/18] Standardize capitalization of "local user account" & shorten support url --- windows/deployment/do/mcc-ent-deploy-to-windows.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/windows/deployment/do/mcc-ent-deploy-to-windows.md b/windows/deployment/do/mcc-ent-deploy-to-windows.md index cee4f0975b1..275b6378712 100644 --- a/windows/deployment/do/mcc-ent-deploy-to-windows.md +++ b/windows/deployment/do/mcc-ent-deploy-to-windows.md @@ -17,7 +17,7 @@ appliesto: This article describes how to deploy Microsoft Connected Cache for Enterprise and Education caching software to a Windows host machine. -Deploying Connected Cache to a Windows host machine requires designating a [Group Managed Service Account (gMSA)](/windows-server/security/group-managed-service-accounts/getting-started-with-group-managed-service-accounts) or a [Local User Account](https://support.microsoft.com/windows/create-a-local-user-or-administrator-account-in-windows-20de74e0-ac7f-3502-a866-32915af2a34d) as the Connected Cache runtime account. This prevents tampering with the Connected Cache container and the cached content on the host machine. +Deploying Connected Cache to a Windows host machine requires designating a [Group Managed Service Account (gMSA)](/windows-server/security/group-managed-service-accounts/getting-started-with-group-managed-service-accounts) or a [local user account](https://support.microsoft.com/topic/20de74e0-ac7f-3502-a866-32915af2a34d) as the Connected Cache runtime account. This prevents tampering with the Connected Cache container and the cached content on the host machine. Before deploying Connected Cache to a Windows host machine, ensure that the host machine meets all [requirements](mcc-ent-prerequisites.md), and that you have [created and configured your Connected Cache Azure resource](mcc-ent-create-resource-and-cache.md). @@ -39,12 +39,12 @@ Before deploying Connected Cache to a Windows host machine, ensure that the host 1. Set the Execution Policy to *Unrestricted* to allow the provisioning scripts to run. 1. Create a `$User` PowerShell variable containing the username of the account you intend to designate as the Connected Cache runtime account. - For gMSAs, the `$User` PowerShell variable should be formatted as `"Domain\Username$"`. For Local User accounts, `$User` PowerShell variable should be formatted as `"LocalMachineName\Username"`. + For gMSAs, the `$User` PowerShell variable should be formatted as `"Domain\Username$"`. For local user accounts, `$User` PowerShell variable should be formatted as `"LocalMachineName\Username"`. - If you're using a Local User account as the Connected Cache runtime account, you'll also need to create a [PSCredential Object](/dotnet/api/system.management.automation.pscredential) named `$myLocalAccountCredential`. + If you're using a local user account as the Connected Cache runtime account, you'll also need to create a [PSCredential Object](/dotnet/api/system.management.automation.pscredential) named `$myLocalAccountCredential`. >[!Note] - >* You'll need to apply a local security policy to permit the Local User account to `Log on as a batch job`. + >* You'll need to apply a local security policy to permit the local user account to `Log on as a batch job`. 1. Run the provisioning command on the host machine. @@ -72,12 +72,12 @@ To deploy a cache node programmatically, you'll need to use Azure CLI to get the 1. Set the Execution Policy to *Unrestricted* to allow the provisioning scripts to run. 1. Create a `$User` PowerShell variable containing the username of the account you intend to designate as the Connected Cache runtime account. - For gMSAs, the `$User` PowerShell variable should be formatted as `"Domain\Username$"`. For Local User accounts, the `$User` PowerShell variable should be formatted as `"LocalMachineName\Username"`. + For gMSAs, the `$User` PowerShell variable should be formatted as `"Domain\Username$"`. For local user accounts, the `$User` PowerShell variable should be formatted as `"LocalMachineName\Username"`. - If you're using a Local User account as the Connected Cache runtime account, you'll also need to create a [PSCredential Object](/dotnet/api/system.management.automation.pscredential) named `$myLocalAccountCredential`. + If you're using a local user account as the Connected Cache runtime account, you'll also need to create a [PSCredential Object](/dotnet/api/system.management.automation.pscredential) named `$myLocalAccountCredential`. >[!Note] - >* You'll need to apply a local security policy to permit the Local User account to `Log on as a batch job`. + >* You'll need to apply a local security policy to permit the local user account to `Log on as a batch job`. 1. Replace the values in the following provisioning command before running it on the host machine.