【发布时间】:2018-03-13 17:36:54
【问题描述】:
我正在尝试在启动 2 个实例的自动缩放环境中创建 2 个 ebs 卷。
目前,如果没有“可用”卷,则此用户数据 ps 脚本能够检查并进入 else 循环。但它只创建 2 个卷而不是 4 个,因为(每个实例 2 个)。我需要设置睡眠状态吗? 2 个 ebs 卷将如何附加到通过自动扩展启动的 2 个单独实例?
$instanceId = Invoke-RestMethod -Uri http://169.254.169.254/latest/meta-data/instance-id;
$available = Get-EC2Volume -Filter @{ Name="status"; Values="available" }
if($available) {
Get-EC2Volume -Filter @{ Name="status"; Values="available" } >> c:\cfn\scripts\volumeinfo.txt;
$vid = Get-Content "c:\cfn\scripts\volumeinfo.txt" | select-string volumeId | Foreach-Object { $_.ToString().split(':')[1] -replace '\s','' }
Add-Content -Path c:\cfn\scripts\info.txt -Value $vid
[Byte] $c = [Char] 'd';
foreach ($volumeid in $vid) {
Add-Content -Path c:\cfn\scripts\info.txt -Value $volumeid
$instanceId = Invoke-RestMethod -Uri http://169.254.169.254/latest/meta-data/instance-id
Add-EC2Volume -InstanceId $instanceId -VolumeId $volumeid -Device "/dev/sd$([Char] $c++)" }
Get-Disk | Where-Object IsOffline –Eq $True | Set-Disk –IsOffline $False
} else {
echo "Else Loop" >> c:\cfn\scripts\info.txt;
$instanceId = Invoke-RestMethod -Uri http://169.254.169.254/latest/meta-data/instance-id
$rgn = Invoke-RestMethod -Uri http://169.254.169.254/latest/meta-data/placement/availability-zone
$v = New-EC2Volume -AvailabilityZone $rgn -Size 50 -VolumeType gp2
Add-EC2Volume -Device /dev/sdb -InstanceId $instanceId -VolumeId $v.VolumeId
Add-Content -Path c:\cfn\scripts\info.txt -Value $v.VolumeId
$v = New-EC2Volume -AvailabilityZone $rgn -Size 50 -VolumeType gp2
Add-EC2Volume -Device /dev/sdc -InstanceId $instanceId -VolumeId $v.VolumeId
Add-Content -Path c:\cfn\scripts\info.txt -Value $v.VolumeId
Get-Disk | Where-Object IsOffline –Eq $True | Set-Disk –IsOffline $False
【问题讨论】:
标签: amazon-web-services amazon-cloudformation