Est-ce que quelqu'un sait comment monter automatiquement un volume Elastic Block Storage (EBS) lors du démarrage d'une instance Windows 2003 dans le modèle Elastic Compute Cloud (EC2) d'Amazon?Volume Automount EBS dans l'instance Windows Amazon EC2
Répondre
Configuration:
- Assurez-vous que le volume EBS est formaté et étiqueté (dans l'exemple que j'utilisé l'étiquette pDRIVE).
- Installation d'un mappage de lecteur utilisant Ec2ConfigServiceSettings.exe
- Installer Java sur l'instance
- Installer les outils de ligne de commande API EC2
- Installer une copie de votre cert et la clé privée
- Installer une copie de boucle. exe (outil open source)
Vous pouvez utiliser l'éditeur de stratégie de groupe pour définir ce script en tant que script de démarrage. Voir http://technet.microsoft.com/en-us/library/cc739591(WS.10).aspx pour plus d'informations.
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
J'ai trouvé le code Rubis suivant à http://www.ioncannon.net/system-administration/199/automounting-amazon-ebs-volumes-on-ec2-instances/ avec la permission de Carson McDonald. C'est pour Linux/Unix, mais peut-être que vous pouvez changer cela pour Ruby sur Windows 2003 ou le faire servir de modèle pour le faire dans un autre langage de script. Notez que vous pouvez transférer des données dans votre image en tant que données utilisateur telles que l'ID de volume ECS EBS et le nom du périphérique (par exemple,/dev/sdh dans l'exemple suivant ou tout ce qui serait dans Windows pour votre cas). Vous pouvez accéder aux données utilisateur à partir de l'instance elle-même en tant que méta-données, comme cela est fait grossièrement ci-dessous pour obtenir l'ID d'instance. Plus précisément, vous devez accéder au http://169.254.169.254/1.0/user-data pour accéder aux données utilisateur.
#!/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. Amazon EC2 et EBS utilisant Windows AMIs
- 2. Exécuter Amazon EC2 AMI dans Windows
- 3. Oracle DB sur EC2 d'Amazon EBS +
- 4. Déploiement sur Amazon EC2
- 5. Demande de licence Amazon EC2
- 6. Création d'une solution de sauvegarde Amazon EC2 sur Amazon S3
- 7. ce qui peut causer un écart de temps dans les données sur une partition amazon ebs?
- 8. Pouvez-vous attacher Amazon EBS à plusieurs instances?
- 9. Combien d'utilisateurs une instance Amazon EC2 peut-elle servir?
- 10. Comment créer OpenSolaris volume self bunle sur EC2
- 11. Quels sont les instanceState valides pour l'API Amazon EC2?
- 12. Quel est le stockage d'instance sur EC2?
- 13. Expliquez ce qu'est Amazon EC2 et puis-je l'utiliser comme service d'hébergement Web?
- 14. Comment puis-je générer une signature v2 pour Amazon EC2 en utilisant PHP?
- 15. Déploiement Amazon Elastic Cloud et Silverlight
- 16. ec2 putty connect problème
- 17. Qu'est-ce que ec2-authorize?
- 18. Tutoriel utilisant R sur Amazon EC2 un navigateur en utilisant seulement pour la construction d'un modèle de régression
- 19. Scripting Shell pour générer une image EC2
- 20. Catégorisation des instances EC2
- 21. Comment contrôler "Windows XP Volume Control" avec VC#
- 22. Comment masquer le volume complet?
- 23. Comment faire pour obtenir l'ID d'instance d'une machine Windows EC2 dans une variable de lot
- 24. EC2 utilisateur non root login
- 25. manipulation de volume/mélangeur dans GNOME
- 26. Comment puis-je programmer un volume iscsi brut dans Windows et le préparer à l'utilisation?
- 27. iPhone Mic volume
- 28. Contrôle SWFLoader Volume
- 29. Amazon SQS objectif c
- 30. Énumérer les clés dans Amazon SimpleDB