Пример. Скрипт RemoveCacheHost
В этом разделе представлен пример скрипта Windows PowerShell RemoveCacheHost.ps1. Этот скрипт автоматически удаляет узел кэша из кластера. Пояснения по командам скрипта см. в разделе Автоматическая установка и конфигурация. Скрипт RemoveCacheHost выполняет следующие действия:
Попытка остановки узла кэша для подготовки его удаления.
Отмена регистрации узла кэша в кластере.
Удаление конфигурации службы кэширования.
Удаление конфигурации функции администрирования кэша.
Выключает встроенную политику брандмауэра Windows для Кэш AppFabric.
Пример. Скрипт RemoveCacheHost
Чтобы использовать скрипт RemoveCacheHost, следует вначале скопировать содержимое следующего скрипта Windows PowerShell в текстовый файл, а затем сохранить файл под именем RemoveCacheHost.ps1. Просмотрите сведения о настройке, приведенные после скрипта, а затем запустите его.
param([switch]$RemoveCacheCluster, [string]$Pvd, [string]$ConnStr)
##########################
# Customizable Variables #
##########################
$provider = "System.Data.SqlClient"
#$provider = "XML"
$host_name = $env:COMPUTERNAME
$cache_port = 22233
# If System.Data.SqlClient:
$database_name = "CacheClusterConfigurationDB"
$database_server = "SQLServer1"
# If XML Provider:
$share_location = "\\Server1\CacheConfigShare"
##############
# Initialize #
##############
Import-Module DistributedCacheAdministration
Import-Module DistributedCacheConfiguration
$connection_string = ""
if ($provider -eq "System.Data.SqlClient")
{
$connection_string = "Data Source=" + $database_server + `
";Initial Catalog=" + $database_name + `
";Integrated Security=True"
}
if ($provider -eq "XML")
{
$connection_string = $share_location
}
# If provided, command-line parameters override
# internal script variables:
if ($Pvd)
{
$provider = $Pvd
}
if ($ConnStr)
{
$connection_string = $ConnStr
}
#####################
# Remove Cache Host #
#####################
Write-Host "`nUse-CacheCluster -Provider $provider -ConnectionString"`
"`"$connection_string`"" -ForegroundColor Green
Use-CacheCluster -Provider $provider -ConnectionString $connection_string
#Make sure the cache host is stopped
$Get_CacheHost_Command = Get-CacheHost -HostName $host_name -CachePort $cache_port
if ($Get_CacheHost_Command.Status -eq "Up")
{
Write-Host "`nStop-CacheHost -HostName $host_name -CachePort $cache_port" -ForegroundColor Green
Stop-CacheHost -HostName $host_name -CachePort $cache_port
}
$Get_CacheHost_Command = Get-CacheHost -HostName $host_name -CachePort $cache_port
if ($Get_CacheHost_Command.Status -eq "Down")
{
Write-Host "`nUnregister-CacheHost -Provider $provider -ConnectionString `"$connection_string`" " `
"-HostName $host_name -RemoveServicePermissions" -ForegroundColor Green
Unregister-CacheHost -Provider $provider -ConnectionString $connection_string `
-HostName $host_name -RemoveServicePermissions
Write-Host "`nRemove-CacheHost" -ForegroundColor Green
Remove-CacheHost
Write-Host "`nRemove-CacheAdmin" -ForegroundColor Green
Remove-CacheAdmin
########################
# Remove Cache Cluster #
########################
# Look for a parameter that specifies this is a new cache cluster
if ($RemoveCacheCluster)
{
Write-Host "`nRemove_CacheCluster -Provider $provider -ConnectionString "`
"`"$connection_string`" -Force" -ForegroundColor Green
Remove-CacheCluster -Provider $provider -ConnectionString $connection_string -Force
}
##########################
# Configure the Firewall #
##########################
Write-Host "`nConfigure the firewall..." -ForegroundColor Green
netsh advfirewall firewall set rule `
group="Windows Server AppFabric: AppFabric Caching Service" new enable=No | Out-Null
# Uncomment the following lines only if other services do not need Remote Service Management.
#netsh advfirewall firewall set rule `
# name=\"Remote Service Management (RPC)\" profile=domain new enable=No | Out-Null
#netsh advfirewall firewall set rule `
# name=\"Remote Service Management (RPC-EPMAP)\" profile=domain new enable=No | Out-Null
#netsh advfirewall firewall set rule `
# name=\"Remote Service Management (NP-In)\" profile=domain new enable=No | Out-Null
}
else
{
Write-Host "`nUnable to stop the host $host_name (Port:$cache_port)`n`n" -ForegroundColor Red
}
Настройка скрипта RemoveCacheHost
Существует два способа изменения скрипта. Во-первых, можно изменить значения переменных в разделе Customizable Variables. Например, при использовании поставщика XML установите переменную $provider
равной "XML"
, а параметр $share_location
— равным сетевому ресурсу, который необходимо использовать для хранилища конфигурации. Настройте другие переменные в зависимости от конкретной ситуации. Обратите внимание на то, что переменные $database_name
и $database_server
необходимы только при использовании поставщика System.Data.SqlClient. Переменная $share_location
необходима только при указании поставщика XML.
Другим вариантом является использование параметров скрипта Pvd
и ConnStr
для указания поставщика и строки подключения вручную из командной строки. Эти параметры переопределяют внутренние настройки переменных.
Выполнение скрипта RemoveCacheHost
Следующая команда удаляет локальный сервер из кластера кэша.
RemoveCacheHost
Следующая команда удаляет локальный сервер из кластера кэша, а также удаляет сам кластер. Это действие можно выполнить при удалении последнего узла из кластера кэша.
RemoveCacheHost -RemoveCacheCluster
В следующем примере демонстрируется указание поставщика и строки подключения вручную из командной строки.
RemoveCacheHost.ps1 -Pvd System.Data.SqlClient -ConnStr "DataSource=SQLServer1;Initial Catalog=CustomConfigDB;Integrated Security=True"
Обратите внимание, что в некоторых случаях скрипт не способен остановить указанный узел кэша. В таких случаях необходимо остановить кэш с помощью команды Stop-CacheCluster
перед удалением узла с помощью скрипта.
См. также
Основные понятия
Автоматическая установка и настройка
2012-03-05