volumen virginia vincular una tiempo puede new más mismo instancia ec2 ebs east aws windows amazon-ec2 cloud amazon-ebs

virginia - Volumen de Eunt de Automount en la instancia de Windows de Amazon EC2



us east virginia aws (2)

¿Alguien sabe cómo montar automáticamente un volumen de Elastic Block Storage (EBS) al iniciar una instancia de Windows 2003 en Elastic Compute Cloud (EC2) de Amazon?


Encontré el siguiente código de Ruby en http://www.ioncannon.net/system-administration/199/automounting-amazon-ebs-volumes-on-ec2-instances/ cortesía de Carson McDonald. Es para Linux / Unix, pero tal vez puedas volver a convertir esto para Ruby en Windows 2003 o hacer que sirva de modelo para hacerlo en otro lenguaje de scripting.

Tenga en cuenta que puede pasar cosas a su imagen como datos de usuario como el ID del volumen ECS EBS y el nombre del dispositivo (por ejemplo, / dev / sdh en el siguiente ejemplo o lo que sea en Windows para su caso). Puede acceder a los datos del usuario desde la instancia en sí como metadatos, como se hace más o menos a continuación para obtener el ID de instancia. Más específicamente, tendrá acceso a http://169.254.169.254/1.0/user-data para obtener los datos del usuario.

#!/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'')


Preparar:

  • Asegúrese de que el volumen de EBS esté formateado y etiquetado (en el ejemplo utilicé la etiqueta PDRIVE).
  • Configurar una asignación de unidad usando Ec2ConfigServiceSettings.exe
  • Instalar Java en la instancia
  • Instalar las herramientas de línea de comandos de la API EC2
  • Instale una copia de su certificado y clave privada
  • Instale una copia de curl.exe (herramienta de código abierto)

Puede usar el editor de políticas de grupo para establecer este script como su script de inicio. Consulte http://technet.microsoft.com/en-us/library/cc739591(WS.10).aspx para obtener más información.

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