由于我厌倦了反复单击/等待/单击 Amazon Web 服务 GUI 界面,因此我需要一个 EC2 脚本来:
- 停止在 bash 命令行中指定的实例
- 分离指定卷
- 从指定的快照创建一个新的卷
- 再次启动实例
它当然可以用 GUI 来完成,但它是如此的痛苦。这样我就可以在喝咖啡的时候让脚本运行 5 分钟,而不必去理会它。
由于我厌倦了反复单击/等待/单击 Amazon Web 服务 GUI 界面,因此我需要一个 EC2 脚本来:
它当然可以用 GUI 来完成,但它是如此的痛苦。这样我就可以在喝咖啡的时候让脚本运行 5 分钟,而不必去理会它。
句法:
php reprovision.php i-xxxx vol-xxxx snap-xxxx
重新配置.php:
<?php
require 'aws.php';
$config = aws_setup();
$ec2Client = \Aws\Ec2\Ec2Client::factory($config);
$stop = $argv[1];
$detach = $argv[2];
$snapshot = $argv[3];
$ec2Client->stopInstances(array('InstanceIds' => array($stop)));
sleep(60);
$ec2Client->detachVolume(array('VolumeId' => $detach));
sleep(10);
$vol = $ec2Client->createVolume(array('SnapshotId' => $snapshot, 'AvailabilityZone' => 'us-east-1a'));
sleep(10);
$ec2Client->attachVolume(array('VolumeId' => $vol->VolumeId, 'InstanceId' => $stop, 'Device' => '/dev/sda1'));
sleep(10);
$ec2Client->startInstances(array('InstanceIds' => array($stop)));
'aws_setup()' 获取配置数组以在下一行启动 ec2 客户端。
然后将命令行参数分配给变量。
脚本的下一个版本最好使用 EC2 等待函数,而不是 PHP 的“睡眠”。