2016-12-29 4 views
5

Ich habe eine Menge Fragen über das Hinzufügen von EBS-Volumes Linux, aber nicht Windows, beantwortet. Angenommen, Sie haben festgestellt, dass auf Ihrem Datenträger wenig Speicherplatz verfügbar ist (z. B. über CloudWatch) und Sie ein weiteres EBS-Volume hinzufügen möchten. Kann das mit Powershell gemacht werden?EBS-Volume an Windows EC2 mit Powershell anhängen

Ich würde es vorziehen, diskpart.exe nicht zu verwenden, da es schwieriger ist, seine Ergebnisse zu analysieren (nicht ein natives Powershell-Kommando).

+0

nicht vertraut mit den genauen Cmdlets, aber ich weiß, dass Amazon bietet die Möglichkeit, das Volumen tatsächlich per Powershell hinzufügen/erstellen, darüber hinaus müssen Sie nur die Festplatte formatieren, die Sie mit [Win32_Volume] (https: //msdn.microsoft.com/en-us/library/aa390432(v=vs.85).aspx) WMI-Klasse –

+0

Danke @MikeGaruccio. Ich habe etwas herausgefunden und eine Antwort geschrieben, aber ich werde Ihren Link überprüfen. –

+0

Ahh sieht aus wie Sie mit einigen der neueren Cmdlets, definitiv der Weg zu gehen, wenn Ihre Maschinen sie unterstützen, WMI wäre ein nützlicher Fallback, wenn Ihre Systeme älter als 2012 sind. –

Antwort

7

In der Hoffnung, dass dies jemand da draußen hilft. Das AWS-Zeug war einfach, aber ich brauchte eine Weile, um alle Dinge aufzuspüren, damit Windows es nutzen konnte.

Diese Antwort der Kürze halber abgespeckte, so stellen Sie sicher:

  1. Sie die AWS Powershell API Ausnahmen
  2. Volumes sind „verfügbar“ behandelt haben, bevor sie
  3. zu einer EC2 zu befestigen, um zu versuchen
  4. die Volumen zeigt "in-use", wenn Sie es können

2 und 3 angebracht haben über die Get-EC2Volume API erfolgen.

die EBS Volume erstellen:

$volume = New-EC2Volume -Size $sizeInGB -AvailabilityZone $az -VolumeType $vType 

die Lautstärke auf den EC2 Attach:

Add-EC2Volume -InstanceId $toInstanceId -VolumeId $volume.Id -Device $devId -Region $region 

Windows-Seite:

die ebs Volumen finden Sie

$diskNumber = (Get-Disk | ? { 
    ($_.OperationalStatus -eq "Offline") -and ($_."PartitionStyle" -eq "RAW") }).Number 
nur

angebracht

initi alize die Scheibe

Initialize-Disk -Number $diskNumber -PartitionStyle "MBR" 

max-Raum-Partition erstellen, Laufwerksbuchstaben zuweisen, stellen Sie "aktiv"

$part = New-Partition -DiskNumber $diskNumber -UseMaximumSize -IsActive -AssignDriveLetter 

Format das neue Laufwerk

Format-Volume -DriveLetter $part.DriveLetter -Confirm:$FALSE 

Viel Spaß!

+0

Großartig! Ich habe diese Antwort verwendet, um das folgende Skript zu erstellen, das ich innerhalb eines user_data-Skripts verwende: https://gist.github.com/anderssonjohan/fa88e6ddf883fd161698caac68912394 Es wird mit terraform verwendet, aber es ist nur ein normales user_data-Init-Skript, so dass es ohne Terraform als verwendet werden kann Gut. –