Veeam Tape Library Bänder aus Mailslot automatisch importieren
Aus znilwiki
Ausgangslage
Wir haben eine Tape Library in Veeam mit Mailslots. Das Exportieren innerhalb des Backup-to-Tapes Jobs klappt ganz wunderbar.
Cool wäre das er beim entnehmen der Bänder aus dem Mailslots einfach dort die neuen wieder einlegt und diese dann auch automatisch wieder importiert.
Das ist die Tape Library in Veeam:
Lösung 1
Das geht - Stand 11.01.2021 mit Veeam 10 / 11 / 12 - nur per Powershell.
Das Skript
Wir erstellen folgende Datei
C:\Scripts\VeeamTapeImport.ps1
mit folgendem Inhalt:
# Load Veeam Powershell Extensions
# In neueren Veeam Versionen (11 und höher) nicht mehr notwendig und deshalb auskommentiert
# Add-PSSnapin VeeamPSSnapin
# Connect to local Server
Connect-VBRServer
# Wait a Moment
timeout 5
# Get TapeLibrary and Import Tapes from Mediaslots
Get-VBRTapeLibrary -Name "IBM 3573-TL 1400" | Import-VBRTapeMedium
# Disconnect
Disconnect-VBRServer
Der Parameter -Name - dort müsst Ihr den Namen der Library eintragen wie er auch in der Veeam Console angezeigt wird (markieren, F2 drücken und kopieren)
Alternativ: Hier eine Version die nur Wochentags importiert, nicht am Wochenende:
$Wochentag = Get-Date -Format "dddd"
If (($Wochentag -notlike "Samstag") -And ($Wochentag -notlike "Sonntag")) {
# Connect to local Server
Connect-VBRServer
# Wait a Moment
timeout 5
# Get TapeLibrary and Import Tapes from Mediaslots
Get-VBRTapeLibrary -Name "IBM 3573-TL 1400" | Import-VBRTapeMedium
# Disconnect
Disconnect-VBRServer
}
Auf einem englischen System solltet Ihr die Bezeichnungen für Samstag und Sonntag entsprechend anpassen.
Die Aufgabe
In der Aufgabenplanung erstellen wir einen neue Aufgabe per Aufgabe erstellen
powershell.exe -ExecutionPolicy Bypass -NoLogo -NonInteractive -NoProfile -WindowStyle Hidden -File C:\Scripts\VeeamTapeImport.ps1
Lösung 2: bei MFA etc.
Das mit dem PowerShell-Skript funktioniert.
Jedoch hatte ich mit dem Ausführen Bauchschmerzen. Denn inzwischen ist bei vielen Kunden der Zugriff zu Veeam eingeschränkt. Der Benutzer Administrator darf nicht mehr dran, die Benutzer haben alle MFA aktiviert und jeder Admin sein eigenes Konto.
Man kann zwar ein Dienstkonto in Veeam definieren bei dem man MFA deaktiviert. Das muss aber auch die Administratoren-Rolle haben, sonst ist der PowerShell-Zugriff nicht erlaubt. Das Konto darf also alles, inklusive Anmeldung an der Managementkonsole.
Die Lösung: Wir hängen das Skript einfach an einen Backup-Job:
In einem Job unter
Storage => Advanced Settings => Scripts
lassen wir das Skript vor oder nach einem beliebigen Job laufen.
Als Befehlszeile die gleiche wie man diese auch in Lösung 1 in der Aufgabenplanung eingerichtet hätte:
powershell.exe -ExecutionPolicy Bypass -NoLogo -NonInteractive -NoProfile -WindowStyle Hidden -File C:\Scripts\VeeamTapeImport.ps1
Testen
Startet die Aufgabe einmal von Hand oder das PowerShell-Skript per Doppelklick oder aus der Shell heraus.
In Veeam in den Logs (z.B. Last 24 Hours) sollte die Importversuche zu sehen sein: