Esempio: Script RemoveCacheHost

In questa sezione viene fornito uno script di esempio di Windows PowerShell: RemoveCacheHost.ps1. Lo script rimuove automaticamente un host della cache da un cluster di cache. Per una descrizione dei comandi utilizzati nello script, vedere Installazione e configurazione automatizzate. Lo script di esempio RemoveCacheHost.ps1 esegue le seguenti azioni:

  • Tenta di arrestare l'host della cache per prepararne la rimozione.

  • Annulla la registrazione dell'host della cache dal cluster di cache.

  • Rimuove la configurazione del servizio di memorizzazione nella cache.

  • Rimuove la configurazione della funzionalità Amministrazione cache.

  • Disabilita i criteri di Windows Firewall predefiniti per memorizzazione nella cache di AppFabric.

Esempio: Script RemoveCacheHost

Per utilizzare lo script RemoveCacheHost, copiare prima i contenuti del seguente script di Windows PowerShell in un file di testo, quindi salvare il file con il nome RemoveCacheHost.ps1. Riesaminare quindi le informazioni che seguono lo script per comprendere come personalizzare ed eseguire lo 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
}

Personalizzazione dello script AddCacheHost

Per personalizzare lo script sono disponibili due opzioni. La prima opzione consiste nel modificare i valori delle variabili nella sezione "Customizable Variables" dello script. Ad esempio, se si utilizza il provider XML, impostare la variabile $provider su "XML", quindi impostare $share_location sulla condivisione di rete da utilizzare per l'archivio di configurazione. Personalizzare le altre variabili in base alle impostazioni specifiche. Si noti che le variabili $database_name e $database_server sono necessarie soltanto se si utilizza il provider System.Data.SqlClient. La variabile $share_location è richiesta solo quando si specifica il provider XML.

L'opzione alternativa consiste nell'utilizzare i parametri Pvd e ConnStr dello script per specificare manualmente la stringa del provider e di connessione dalla riga di comando. Questi parametri hanno priorità sulle impostazioni interne delle variabili.

Esecuzione dello script RemoveCacheHost

Il comando seguente rimuove il server locale dal cluster di cache.

RemoveCacheHost

Il comando seguente rimuove il server locale dal cluster di cache oltre al cluster di cache stesso. È possibile eseguire questa operazione quando si rimuove l'ultimo host della cache da un cluster di cache.

RemoveCacheHost -RemoveCacheCluster

Nell'esempio seguente viene descritto come specificare manualmente la stringa del provider e di connessione dalla riga di comando.

RemoveCacheHost.ps1 -Pvd System.Data.SqlClient -ConnStr "DataSource=SQLServer1;Initial Catalog=CustomConfigDB;Integrated Security=True"

Si noti che talvolta lo script non sarà in grado di arrestare l'host della cache specificato. In casi simili, sarà necessario arrestare il cluster di cache mediante il comando Stop-CacheCluster prima di rimuovere l'host della cache con lo script.

Vedere anche

  2012-03-05
Mostra: