¿Alguien sabe cómo montar automáticamente un volumen Elastic Block Storage (EBS) al iniciar una instancia de Windows 2003 en Elastic Compute Cloud (EC2) de Amazon?Volumen de Etage de automóvil en Amazon EC2 Windows Instance
Respuesta
Configuración:
- Asegúrese de que el volumen de EBS está formateado y etiquetado (en el ejemplo I utiliza la etiqueta PDrive).
- instalación de una asignación de unidad utilizando Ec2ConfigServiceSettings.exe
- instalar Java en la instancia
- instalar la API de EC2 herramientas de línea de comandos
- Instalar una copia de su certificado y clave secreta
- instalar una copia del rizo. 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
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 usted podría pasar las cosas en su imagen como datos de usuario, como el ID de volumen ECS EBS y el nombre del dispositivo (por ejemplo,/dev/SDH en el siguiente ejemplo o lo que sería 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, accederá al http://169.254.169.254/1.0/user-data para acceder a 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')
- 1. Adjuntar EBS durante el inicio de Amazon EC2 Spot Instance
- 2. Agregar EBS a Ubuntu EC2 Instance
- 3. EC2 Java Api Espere hasta que se cree Ec2 Instance.
- 4. Accediendo a Heroku Postgres Instance desde EC2
- 5. Cómo capturar automáticamente un volumen de una instancia de Amazon EC2?
- 6. Amazon EC2 Sql Rendimiento
- 7. nube de agentes Jenkins Amazon EC2 - esclavos de Windows
- 8. Monitorear el volumen en el volumen de Amazon EBS
- 9. Montaje del volumen antiguo de EBS en la nueva instancia: Amazon EC2
- 10. En Amazon EC2, ¿cómo copio un volumen de EBS a otro usuario?
- 11. Problema de espacio en disco de Amazon EC2 y EBS
- 12. Cómo transferir una imagen a un volumen de Amazon EBS para uso de EC2?
- 13. Despliegue a Amazon EC2
- 14. Amazon EC2 vs PiCloud
- 15. Amazon EC2: Jetty Unaccessible
- 16. Load Balancing en Amazon EC2?
- 17. Múltiples usuarios en Amazon EC2
- 18. Descargue Amazon EC2 AMI?
- 19. cómo nombrar un volumen EC2 EBS en la consola AWS?
- 20. Crear subdominios en Amazon EC2
- 21. Amazon EC2 con o sin EBS?
- 22. Configuración de permisos para WordPress en Amazon EC2 (Amazon Linux)
- 23. Amazon EC2 frente a Amazon EMR
- 24. Instalación de pyOpenSSL en Amazon Linux (EC2)
- 25. Aplicación Delphi ejecutándose en Amazon EC2
- 26. Windows Azure o Amazon EC2 para el desarrollo ASP.NET MVC?
- 27. Windows Azure para desarrolladores web frente a Amazon EC2
- 28. Administración de instancias de Amazon EC2 reservadas
- 29. Permiso de escritura de Amazon Ec2 FTP
- 30. Opscode Chef para Amazon EC2