Exemple : script AddCacheHost
Cette section fournit l'exemple de script Windows PowerShell AddCacheHost.ps1. Celui-ci automatise les étapes nécessaires à l'ajout d'un hôte de cache à un cluster de cache. Pour plus d'informations sur les commandes utilisées dans le script, consultez la rubrique Installation et configuration automatisées. L'exemple de script AddCacheHost effectue les actions suivantes :
création d'un cluster de cache lorsque le paramètre
NewCacheCluster
est spécifié ;enregistrement du serveur local sur le cluster de cache spécifié ;
configuration du service de mise en cache sur le serveur local ;
configuration de la fonctionnalité d'administration du cache sur le serveur local ;
activation de la stratégie de Pare-feu Windows intégrée pour la Mise en cache d'AppFabric ;
démarrage de l'hôte de cache si celui-ci est opérationnel.
Conseil
Pour en savoir plus sur les scripts Windows PowerShell et leur exécution, consultez la rubrique Exécution des scripts Windows PowerShell.
Configuration préalable du script AddCacheHost
Pour exécuter ce script, vous devez installer Microsoft AppFabric 1.1 pour Windows Server avec les fonctionnalités de service de mise en cache et d'administration du cache. Vous devez également configurer l'emplacement du magasin de configuration du cache. Il existe deux fournisseurs intégrés : XML et System.Data.SqlClient. Pour plus d'informations sur la configuration d'un partage de fichiers réseau, consultez la rubrique Configuration de cluster basée sur un dossier partagé. Pour plus d'informations sur la configuration préalable de SQL Server, consultez la rubrique Configuration de cluster basée sur SQL Server.
Si vous utilisez SQL Server pour le magasin de configuration, vous pouvez également utiliser Windows PowerShell pour créer la base de données de configuration. Pour cela, le fournisseur Windows PowerShell SQL Server doit être installé. Vous devez également disposer des autorisations adéquates pour vous connecter à SQL Server et créer des bases de données. Le script suivant crée une base de données dans le serveur SQL Server spécifié.
param([string]$server="NOTSPECIFIED", [string]$database_name = "CacheClusterConfigurationDB", `
[string]$database_path="C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\")
#################
# Set Variables #
#################
# Parameters specifying configuration database details
if ($server -eq "NOTSPECIFIED")
{
# Use local server if none is specified
$server = $env:COMPUTERNAME
}
$connection_string = "Data Source=" + $server + `
";Initial Catalog=" + $database_name + `
";Integrated Security=True"
Write-Host "`nConnection String:`n$connection_string`n" -ForegroundColor Green
###################################################
# Create the Cache Cluster Configuration Database #
###################################################
$database_file_path = "N'" + $database_path + $database_name + ".mdf'"
$database_log_path = "N'" + $database_path + $database_name + "_log.ldf'"
$Database_Exists_Command = "select count(*) from sys.databases where name = '" + $database_name + "'"
$Database_Exists_Result = Invoke-Sqlcmd $Database_Exists_Command -ServerInstance $server
Write-Host "`nCreating Configuration Database:" -ForegroundColor Green
if ($Database_Exists_Result.Item(0) -eq 0)
{
$Create_DB_Command = "CREATE DATABASE [" + $database_name + "] ON PRIMARY " + `
"( NAME = N'" + $database_name + "', " + `
"FILENAME = " + $database_file_path + ", SIZE = 2048KB , FILEGROWTH = 1024KB ) " + `
"LOG ON ( NAME = N'" + $database_name + "_log'," + `
"FILENAME = " + $database_log_path + ", SIZE = 1024KB , FILEGROWTH = 10%)"
Write-Host "$Create_DB_Command`n" -ForegroundColor Green
Invoke-Sqlcmd $Create_DB_Command -ServerInstance $server
}
else
{
Write-Host "Database $database_name already exists on $server.`n" `
-ForegroundColor Green
}
Pour utiliser ce script, le composant logiciel enfichable de Windows PowerShell SQL Server doit être chargé. Pour ce faire, utilisez la commande suivante.
Add-PSSnapin SqlServerCmdletSnapin100
Si les scripts ont été enregistrés en tant que fichier CreateCacheConfigDB.ps1, l'appel suivant crée une base de données nommée CacheClusterConfigurationDB
sur le serveur SQL Server SQLServer1
. Notez que vous pouvez également utiliser les valeurs par défaut des paramètres database_name et database_path et indiquer uniquement le nom du serveur.
CreateCacheConfigDB.ps1 -server SQLServer1 -database_name "CacheClusterConfigurationDB" -database_path "C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\"
Exemple : script AddCacheHost
Pour utiliser le script AddCacheHost, commencez par copier le contenu du script Windows PowerShell suivant dans un fichier texte, puis enregistrez celui-ci sous le nom AddCacheHost.ps1. Puis consultez les informations figurant à la suite du script pour savoir comment le personnaliser et l'exécuter.
param([switch]$NewCacheCluster, [string]$Pvd, [string]$ConnStr)
##########################
# Customizable Variables #
##########################
$provider = "System.Data.SqlClient"
#$provider = "XML"
$host_name = $env:COMPUTERNAME
$service_account = "NT Authority\Network Service"
$starting_port = 22233
$cluster_size = "Small"
# If System.Data.SqlClient:
$database_name = "CacheClusterConfigurationDB"
$database_server = "SQLServer1"
# If XML Provider:
$share_location = "\\Server1\CacheConfigShare"
##############
# Initialize #
##############
Import-Module DistributedCacheAdministration
Import-Module DistributedCacheConfiguration
$cache_port = $starting_port + 0
$cluster_port = $starting_port + 1
$arbitration_port = $starting_port + 2
$replication_port = $starting_port + 3
$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
}
##############################
# Create a New Cache Cluster #
##############################
$Get_CacheClusterInfo_Command = Get-CacheClusterInfo -Provider $provider -ConnectionString $connection_string
# Look for a PowerShell script parameter that specifies this is a new cache cluster
if ($NewCacheCluster -and !$Get_CacheClusterInfo_Command.IsInitialized)
{
Write-Host "`nNew-CacheCluster -Provider $provider -ConnectionString "`
"`"$connection_string`" -Size $cluster_size" -ForegroundColor Green
New-CacheCluster -Provider $provider -ConnectionString $connection_string -Size $cluster_size
}
######################
# Add the Cache Host #
######################
Write-Host "`nRegister-CacheHost -Provider $provider -ConnectionString `"$connection_string`" "`
"-Account `"$service_account`" -CachePort $cache_port -ClusterPort $cluster_port "`
"-ArbitrationPort $arbitration_port -ReplicationPort $replication_port -HostName "`
"$host_name" -ForegroundColor Green
Register-CacheHost -Provider $provider -ConnectionString $connection_string -Account `
$service_account -CachePort $cache_port -ClusterPort $cluster_port -ArbitrationPort `
$arbitration_port -ReplicationPort $replication_port `
-HostName $host_name
Write-Host "`nAdd-CacheHost -Provider $provider -ConnectionString `"$connection_string`" "`
"-Account `"$service_account`"" -ForegroundColor Green
Add-CacheHost -Provider $provider -ConnectionString $connection_string -Account $service_account
Write-Host "`nAdd-CacheAdmin -Provider $provider -ConnectionString "`
"`"$connection_string`"" -ForegroundColor Green
Add-CacheAdmin -Provider $provider -ConnectionString $connection_string
Use-CacheCluster
##########################
# Configure the Firewall #
##########################
Write-Host "`nConfigure the firewall..." -ForegroundColor Green
netsh advfirewall firewall set rule `
group="Windows Server AppFabric: AppFabric Caching Service" new enable=Yes | Out-Null
netsh advfirewall firewall set rule `
name="Remote Service Management (RPC)" profile=domain new enable=Yes | Out-Null
netsh advfirewall firewall set rule `
name="Remote Service Management (RPC-EPMAP)" profile=domain new enable=Yes | Out-Null
netsh advfirewall firewall set rule `
name="Remote Service Management (NP-In)" profile=domain new enable=Yes | Out-Null
########################
# Start the Cache Host #
########################
# If the cluster is not running, don't start the cache host.
$running = 0
$Get_CacheHost_Command = Get-CacheHost
foreach ($cache_host in $Get_CacheHost_Command)
{
if ($cache_host.Status -eq "Up")
{
$running = 1
}
}
if ($running)
{
Write-Host "`nStart-CacheHost -HostName $host_name -CachePort $cache_port" -ForegroundColor Green
Start-CacheHost -HostName $host_name -CachePort $cache_port
}
else
{
Write-Host "`nNot starting new cache host; Cache Cluster is not running..." -ForegroundColor Green
}
Write-Host "`nGet-CacheHost`n" -ForegroundColor Green
Get-CacheHost
Personnalisation du script AddCacheHost
Pour personnaliser ce script selon vos besoins, vous avez le choix entre deux options. La première option consiste à modifier les valeurs des variables dans la section « Variables personnalisables » du script. Par exemple, si vous utilisez le fournisseur XML, configurez la variable $provider
sur "XML"
et la variable $share_location
sur le partage réseau qui doit être utilisé pour le magasin de configuration. Personnalisez les autres variables selon vos paramètres spécifiques. Notez que les variables $database_name
et $database_server
ne sont nécessaires que dans le cadre de l'utilisation du fournisseur System.Data.SqlClient. La variable $share_location
n'est nécessaire que lorsque vous spécifiez le fournisseur XML.
La seconde option consiste à utiliser les paramètres de script Pvd
et ConnStr
pour spécifier manuellement le fournisseur et la chaîne de connexion à partir de la ligne de commande. Ces paramètres remplacent les paramètres internes des variables.
Exécution du script AddCacheHost
La commande suivante crée un cluster de cache et configure le serveur local en tant que nouvel hôte de cache sur ce cluster.
AddCacheHost -NewCacheCluster
La commande suivante configure le serveur local en tant qu'hôte de cache sur un cluster de cache existant.
AddCacheHost
L'exemple suivant montre comment spécifier manuellement le fournisseur et la chaîne de connexion à partir de la ligne de commande.
AddCacheHost.ps1 -NewCacheCluster -Pvd System.Data.SqlClient -ConnStr "Data Source=SQLServer1;Initial Catalog=CustomConfigDB;Integrated Security=True"
Voir aussi
Concepts
Installation et configuration automatisées
2012-03-05