by Pierre-Lou CHOFFIN · 8 octobre 2020
Voici un tout petit article afin de commencer pas à pas avec les API Rubrik. Nous utiliserons le SDK Powershell développé par Rubrik : lien. Ceci nous permet de discuter avec le cluster à l’aide de commandes plus simple à comprendre et ainsi faire des requêtes simples et efficaces.
Premièrement, on installe le module Powershell Rubril sur notre laptop ou serveur d’administration. Il faudra peut être s’assurer que le Remote-Execution-Policy soit en RemoteSigned ou bypass
On utilise ensuite le script suivant powershell qui nous permet de protéger le mot de passe qui sera utilisé pour se connecter au cluster Rubrik. Ce compte n’est d’ailleurs pas forcément Admin dans l’interface du CDM.
PS : pensez à ouvrer le Powershell en tant qu’admin sur votre poste.
1 2 3 4 5 6 7 8 9 10 |
param( $Path ) $CredType = @("rubrikCreds.xml") foreach ($Type in $CredType) { $Credential = Get-Credential -Message $Type $Credential | Export-Clixml -Path ($Path + "\" + $Type) } |
Vous pouvez ouvrir le fichier de credentials Rubrik à l’aide d’un éditeur de texte. On voit que le mot de passe n’est pas visible.
Nous avons donc notre fichier de credentials qui peut être réutilisé à l’infini. Dans Powershell, entrez les informations de connexions. Vous avez ensuite accès à toutes les commandes Powershell du SDK Rubrik : lien Rubrik documentation. Essayez donc les commandes ci-desous :
Par exemple, nous allons faire la requête pour connaitre les informations du cluster auquel nous sommes connectés ou encore regarder les différentes SLA qui sont sur notre cluster Rubrik:
On remarque que nous avons exactement les mêmes informations que le sur l’interface HTML5 de l’interface Rubrik.
Pour aller plus loin dans les requêtes, nous allons faire un “OnDemand” snapshot sur une VM de notre cluster VMware. Pour ce faire, rien de plus simple que prendre notre VM avec son nom et enchainer sur la commande New-RubrikSnapshot. Nous spécifions une SLA pour ce snapshot.
Dans l’interface Rubrik, on voit directement le processus de sauvegarde qui est lancé pour notre machine virtuelle.
Une fois que la sauvegarde est terminée, on voit notre nouveau point de restauration sur l’interface (à gauche avant la sauvegarde, à droite avec le point OnDemand supplémentaire).
Voici un exemple plus poussé avec un petit script Powershell entier qui permet de faire un OnDemand snaphot sur de multiples VM. Nous récupérons les credentials, puis une liste de VM dans un fichier CSV, qu’on affecte ensuite à une SLA.
On requière premièrement les 4 arguments (RubrikIP, CSVFile, CredFile, SLA), puis pour chacune des VM dans le fichier CSV, nous allons faire un “OnDemand” snapshot vers la SLA demandée.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
## Script permettant de faire un Ondemand snapshot sur toutes les VM d'un fichier CSV ## ### Paramètre pour le lancement du script : 1) RubrikServer, 2) CSV, 3) CredFile, 4) SLA ### [CmdletBinding()] Param([parameter(Mandatory = $True)][string]$RubrikServer,[parameter(Mandatory = $True)][ValidateScript({[string]::IsNullOrEmpty($_) -ne $True})][string]$inputCSV,[parameter(Mandatory = $True)][string]$inputCreds,[parameter(Mandatory = $True)][string]$SLA) if($args.Count -eq 4) { Get-Help $MyInvocation.MyCommand.Definition return } ##Manual data input## #$inputCSV = "C:\_Rubrik\VM.csv" #$inputCreds = "C:\_Rubrik\Credentials\rubrikCreds.xml" #$RubrikServer = 'x.x.x.x' #$SLA = 'PLC-OnDemand' ## Searches Commands ## # $ClusterInfo = Get-RubrikClusterInfo # Get-RubrikSLA # Get-RubrikVM ##Connexion au cluster Rubrik en utilisant le fichier creds ## Write-Verbose -Message "Importing Credential file: $($IdentityPath + $Environment.rubrikCred)" $Credential = Import-Clixml -Path $inputCreds $null = Connect-Rubrik -Server $RubrikServer -Credential $Credential Write-Verbose -Message "Rubrik Status: Connected to $($rubrikConnection.server)" -Verbose ### Import CSV with virtual machines VMware Tag $inputData = Import-Csv -Path $inputCSV -Delimiter ';' -Encoding UTF8 ## Boucle OnDemand sur toutes les VM du fichier CSV ## foreach ($line in $inputData) { $vmToModify = Get-RubrikVM -Name ($line.Hostname) -Verbose:$false -ErrorAction Stop $vmToModify | New-RubrikSnapshot -SLA $SLA -Confirm:$false Write-Host "OnDemand Snapshot Requested on : $($vmToModify.name)" -Verbose } ##Disconnect Rubrik Cluster## $null = Disconnect-Rubrik -Confirm:$false Write-Verbose -Message "Rubrik Status: Disconnected from $RubrikServer" -Verbose |
Voici à quoi ressemble notre fichier CSV avec nos deux VM, nous utilisons le titre “Hostname” pour définir la bonne colonne à lire. Vous pouvez réutiliser ce script afin d’ajouter par exemple plusieurs colonnes aux CSV pour avoir plus d’argument (par exemple différentes SLA).
Une fois que le script est lancé, on voit dans l’Activity Log de Rubrik que nos deux VM ont été correctement sauvegardées via Powershell. A vous de jouer 🙂
N’oubliez pas que j’avais déjà fait un article pour la sauvegarde automatique des VM grâce aux Tags vSphere VMware : lien vers l’article