샘플: RemoveCacheHost 스크립트
이 섹션에서는 샘플 Windows PowerShell 스크립트 RemoveCacheHost.ps1을 제공합니다. 이 스크립트는 캐시 클러스터에서 캐시 호스트를 자동으로 제거합니다. 이 스크립트에서 사용되는 명령에 대한 설명은 자동 설치 및 구성을 참조하십시오. RemoveCacheHost 샘플 스크립트는 다음과 같은 작업을 수행합니다.
캐시 호스트 제거 준비를 위해 캐시 호스트를 중지하려고 시도합니다.
캐시 클러스터에서 캐시 호스트를 등록 취소합니다.
캐싱 서비스 구성을 제거합니다.
캐시 관리 기능의 구성을 제거합니다.
AppFabric 캐싱에 대해 기본 제공 Windows 방화벽 정책을 사용하지 않도록 설정합니다.
샘플: 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 스크립트 사용자 지정
용도에 맞게 이 스크립트를 사용자 지정하는 방법에는 두 가지 옵션이 있습니다. 첫 번째, 스크립트의 "사용자 지정 가능 변수" 섹션에 있는 변수 값을 변경할 수 있습니다. 예를 들어 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