문제

누구든지 자동 장착 방법을 아는 사람이 있습니까? 탄성 블록 저장 (EBS) Amazon에서 Windows 2003 인스턴스를 시작할 때 볼륨 탄성 계산 클라우드 (EC2)?

도움이 되었습니까?

해결책

설정:

  • EBS 볼륨이 형식화되고 레이블이 지정되어 있는지 확인하십시오 (예에서는 PDRIVE 라벨을 사용한 예에서).
  • ec2configservicesettings.exe를 사용하여 드라이브 매핑을 설정합니다
  • 인스턴스에 Java를 설치하십시오
  • EC2 API 명령 줄 도구를 설치하십시오
  • CERT 및 개인 키 사본을 설치하십시오
  • curl.exe (오픈 소스 도구) 사본을 설치하십시오.

그룹 정책 편집기를 사용 하여이 스크립트를 시작 스크립트로 설정할 수 있습니다. 보다 http://technet.microsoft.com/en-us/library/cc739591(ws.10).aspx 자세한 내용은.

REM @echo off
REM setlocal ENABLEDELAYEDEXPANSION

C:\WINDOWS\system32\eventcreate /l SYSTEM /t information /id 100 /so AttachEbsBoot /d "Starting attach-ebs-boot.cmd"

REM local variables
REM Make sure you include the directory with curl.exe and the EC2 command line tools in the path
set path=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;c:\Utils;C:\ebin\ec2\bin
set JAVA_HOME=c:\java
set EC2_HOME=c:\ebin\ec2
set EC2_CERT=<your_cert>
set EC2_PRIVATE_KEY=<your_private_key>

REM Please note: you should use the Ec2 Config Serive Settings application to ensure
REM that your EBS volume is mapped to a particular drive letter.
REM
REM edit as needed
set EBS_DRIVE=P:
set EBS_DEVICE=xvdp

REM Test to see if the drive is already attached. If it is then we're done.
if exist %EBS_DRIVE%\nul (goto done)

REM get the EBS volume ID from the user data and the instance ID from the meta-data
for /f "delims=" %%a in ('curl http://169.254.169.254/latest/user-data') do (set EBS_VOLUME=%%a)
for /f "delims=" %%b in ('curl http://169.254.169.254/latest/meta-data/instance-id') do (set INSTANCE_ID=%%b)

C:\WINDOWS\system32\eventcreate /l SYSTEM /t information /id 102 /so AttachEbsBoot /d "Volume == %EBS_VOLUME%"
C:\WINDOWS\system32\eventcreate /l SYSTEM /t information /id 103 /so AttachEbsBoot /d "Instance == %INSTANCE_ID%"

REM attach the volume
REM 
REM Use a series of set command to build the command line
SET COMMAND_LINE=%EBS_VOLUME%
SET COMMAND_LINE=%COMMAND_LINE% -i
SET COMMAND_LINE=%COMMAND_LINE% %INSTANCE_ID%
SET COMMAND_LINE=%COMMAND_LINE% -d
SET COMMAND_LINE=%COMMAND_LINE% %EBS_DEVICE%

C:\WINDOWS\system32\eventcreate /l SYSTEM /t information /id 104 /so AttachEbsBoot /d "calling ec2attvole %COMMAND_LINE%"

call ec2attvol.cmd %COMMAND_LINE%

:DONE
C:\WINDOWS\system32\eventcreate /l SYSTEM /t information /id 101 /so AttachEbsBoot /d "Exiting attach-ebs-boot.cmd"

REM Events logged in the System event log
REM source === AttachEbsBoot
REM 
REM Event 100 - Script start
REM Event 101 - Script end
REM Event 102 - Volume ID
REM Event 103 - Instance ID
REM Event 104 - Command line for ec2attvol

다른 팁

다음 루비 코드를 찾았습니다 http://www.ioncannon.net/system-administration/199/automounting-amazon-ebs-volumes-on-ec2-instances/ Carson McDonald의 제공. Linux/Unix 용이지만 Windows 2003에서 Ruby를 위해이 작업을 다시 작성하거나 다른 스크립팅 언어로 수행하기위한 모델 역할을 할 수 있습니다.

ECS EBS Volume ID 및 장치 이름 (예 : 다음 예제의 /dev /sdh 또는 케이스의 Windows에있는 모든 것)과 같은 사용자 데이터로 이미지에 물건을 전달할 수 있습니다. 인스턴스 -ID를 얻으려면 아래에있는 것처럼 인스턴스 자체의 Meta-Data로 사용자 데이터에 액세스 할 수 있습니다. 보다 구체적으로, 당신은 액세스 할 것입니다 http://169.254.169.254/1.0/user-data 사용자 데이터에 도달합니다.

#!/usr/bin/ruby

require 'rubygems'
require 'right_aws'
require 'net/http'

url = 'http://169.254.169.254/2008-02-01/meta-data/instance-id'
instance_id = Net::HTTP.get_response(URI.parse(url)).body

AMAZON_PUBLIC_KEY='your public key'
AMAZON_PRIVATE_KEY='your private key'
EC2_LOG_VOL='the volume id'

ec2 = RightAws::Ec2.new(AMAZON_PUBLIC_KEY, AMAZON_PRIVATE_KEY)

vol = ec2.attach_volume(EC2_LOG_VOL, instance_id, '/dev/sdh')
puts vol

# It can take a few seconds for the volume to become ready.
# This is just to make sure it is ready before mounting it.
sleep 20

system('mount /dev/sdh /mymountpoint')
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top