Exemplo: Script RemoveCacheHost
Esta seção fornece um exemplo de script do Windows PowerShell, RemoveCacheHost.ps1. Esse script remove automaticamente um host de cache de um cluster de cache. Para obter uma explicação dos comandos usados nesse script, consulte Instalação e configuração automatizadas. O script de exemplo RemoveCacheHost executa as seguintes ações:
Tentativas de parar o host de cache para preparar para removê-lo.
Cancela o registro do host de cache do cluster de cache.
Remove a configuração do Serviço de Cache.
Remove a configuração do recurso Administração de Cache.
Desabilita a política interna de firewall do Windows para armazenamento em Cache do AppFabric.
Exemplo: Script RemoveCacheHost
Para usar o script RemoveCacheHost, primeiro copie o conteúdo do script do Windows PowerShell a seguir para um arquivo de texto e salve o arquivo como RemoveCacheHost.ps1. Em seguida, verifique as informações após o script para compreender como personalizar e executar o script.
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
}
Personalizando o script RemoveCacheHost
Para personalizar esse script para seu uso, você tem duas opções. Primeiro, você pode alterar os valores das variáveis na seção "Variáveis personalizáveis" do script. Por exemplo, se você estiver usando o provedor XML, defina a variável $provider
como "XML"
e defina $share_location
como o compartilhamento de rede que deve ser usado para o repositório de configuração. Personalize as outras variáveis com base em suas configurações específicas. Observe que as variáveis $database_name
e $database_server
são necessárias somente quando você está usando o provedor System.Data.SqlClient. A variável $share_location
é necessária somente quando você especifica o provedor XML.
Outra opção é usar os parâmetros de script Pvd
e ConnStr
para especificar manualmente o provedor e a cadeia de conexão na linha de comando. Esses parâmetros substituem as configurações de variáveis internas.
Executando o script RemoveCacheHost
O comando a seguir remove o servidor local do cluster de cache.
RemoveCacheHost
O comando a seguir remove o servidor local do cluster de cache e também remove o cluster de cache. Esta ação poderá ser tomada quando o último host de cache for removido de um cluster de cache.
RemoveCacheHost -RemoveCacheCluster
O exemplo a seguir mostra como especificar manualmente o provedor e a cadeia de conexão a partir da linha de comando.
RemoveCacheHost.ps1 -Pvd System.Data.SqlClient -ConnStr "DataSource=SQLServer1;Initial Catalog=CustomConfigDB;Integrated Security=True"
Observe que, geralmente, o script não poderá parar o host de cache especificado. Nestes exemplos, você precisará parar o cluster de cache com o comando Stop-CacheCluster
antes de remover o host de cache com o script.
Consulte também
Conceitos
Instalação e configuração automatizadas
2012-03-05