Introducción
Durante el proceso despliegue de una granja de SharePoint, cuando se trata de una topología de tres capas, resulta muy interesante intentar automatizar todas las tareas que se puedan y se dejen. En esta entrada vamos a hacer uso de algunos comandos que se se incluyen en el Snapin Microsoft.SharePoint.Powershell que nos puede salvar algún tiempo.Generando el Script
El comando para conectar una máquina a una granja existente Connect-SPConfigurationDatabase, y podemos comprobar cuales son los parámetros mediante el comando Get-Help o en la ayuda de TechNetLos parámetros básicos y fundamentales que debemos pasar al comando son: 1) la instancia SQL Server dónde se hospeda la base de datos de configuración, 2) el nombre de esta base de datos y 3) la frase de paso (passphrase) que se requiere para este tipo de acciones.
Connect-SPConfigurationDatabase -DatabaseServer $SQLInstance -DatabaseName $FarmConfigDB -Passphrase $FarmPassphrase
A tener en cuenta que el parámetro –Passphrase sólo acepta tipos de datos System.Security.SecureString por lo que si solicitamos la introducción de este dato al operador, que es lo habitual, hay que convertir la cadena o hacer que directamente se obtenga con este tipo de dato:
if ($Passphrase -eq ""){ Write-Host "Introduzca la frase de paso para la granja: " -fore Yellow -NoNewline $FarmPassphrase = Read-Host -AsSecureString } else { $FarmPassphrase = (ConvertTo-SecureString $Passphrase -AsPlainText -force) }
Si la operación se realiza correctamente nos devolverá el control del shell sin mostrar ningún mensaje. Al contrario si ocurre un error. Este comando añade el servidor a la granja, pero sólo instala los servicios básicos:
Por lo que es recomendable utilizar los siguientes comandos para dejar este nuevo servidor completamente disponible para formar parte de alguna de las capas (frontales web o servidores de aplicaciones):
Initialize-SPResourceSecurity Install-SPService Install-SPFeature -AllExistingFeatures
Script Completo
Para completar el script añadimos los parámetros necesarios y algunos controles en el proceso, como comprobar si la máquina ya se encuentra conectada a una granja….
Se puede descargar el script completo desde la TechNet Gallery
#Requires -version 2.0 <# Requiere los parámetros SQLInstance y FarmConfigDB para poder operar. En caso de omitir el parametro passphrase, el script le preguntará durante el proceso. Si la máquina ya se encuentra vinculada a una granja será desconectada antes de continuar. #> <# Script: SP_ConectarGranja.ps1 Version: 1.0.0 Author: Víctor M García Sánchez (@Atharky) http://bifase.blogspot.com http://blogs.solidq.com/bicorner Date: 2012-10-10 Keywords: SharePoint 2010, SharePoint 2013, Farm Comments: **************************************************************** * DO NOT USE IN A PRODUCTION ENVIRONMENT UNTIL YOU HAVE TESTED * * THOROUGHLY IN A LAB ENVIRONMENT. USE AT YOUR OWN RISK. IF * * YOU DO NOT UNDERSTAND WHAT THIS SCRIPT DOES OR HOW IT WORKS, * * DO NOT USE IT OUTSIDE OF A SECURE, TEST SETTING. * **************************************************************** **************************************************************** * NO UTILIZAR EN ENTORNOS DE PRODUCCIÓN HASTA COMPROBAR EN * * UN ENTORNO DE PRUEBAS, Y SIEMPRE BAJO SU PROPIA * * RESPONSABILIDAD * * SI NO ENTIENDE EL SCRIPT O COMO FUNCIONA NO LO UTILICE FUERA * * DE UN ENTORNO SEGURO Y DE PRUEBAS * **************************************************************** THIS IS PROVIDED AS IS, AND WITHOUT WARRANTIES. #> Param( [Parameter(Mandatory=$True,Position=0)] [String] $SQLInstance, [Parameter(Mandatory=$True,Position=1)] [String] $FarmConfigDB, [Parameter(Position=2)] [String] $Passphrase ) #param Begin { #Comprueba si se ha cargado el Snapin de SharePoint 2013 If ((get-command | where {$_.ModuleName -ilike "*SharePoint*"}).count -eq 0){ $ver = $host | select version if ($ver.Version.Major -gt 1) {$Host.Runspace.ThreadOptions = "ReuseThread"} Add-PsSnapin Microsoft.SharePoint.PowerShell } #end if Clear-Host }#Begin Process { Try { $SPFarm=Get-SPFarm If ($SPFarm -ne $null){ Write-warning ("Esta máquina se encuentra conectada a la granja ", $SPFarm.Name -join "") Write-host "¿Desea continuar conectándose a [ $FarmConfigDB ]: " -fore yellow Write-host "(s) Si / (n) No : " -NoNewline -fore yellow [char] $Continue = read-host } if ($Continue -ilike "s"){ Disconnect-SPConfigurationDatabase -Confirm:$false if ($Passphrase -eq ""){ Write-Host "Introduzca la frase de paso para la granja: " -fore Yellow -NoNewline $FarmPassphrase = Read-Host -AsSecureString } else { $FarmPassphrase = (ConvertTo-SecureString $Passphrase -AsPlainText -force) } Connect-SPConfigurationDatabase -DatabaseServer $SQLInstance -DatabaseName $FarmConfigDB -Passphrase $FarmPassphrase Initialize-SPResourceSecurity Install-SPService Install-SPFeature -AllExistingFeatures } } #try Catch{ Write-host -fore red "Error: $_" Exit } }#Process End{ Try{ $SPFarm=Get-SPFarm If ($SPFarm -ne $null -and $Continue -ilike "s"){ Write-host -fore green ("Se ha conectado correctamente a la granja ", $SPFarm.Name -join "") } elseif ($SPFarm -ne $null -and $Continue -ilike "s") {Throw "No se ha podido completar la conexión a la granja"} } Catch{ Write-host -fore red "Error: $_" Exit } }
Saludos!
No hay comentarios:
Publicar un comentario