Поделиться через


Пример. Скрипт 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