Partage via


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