Có ai biết cách tự động gắn kết một khối lượng Elastic Block Storage (EBS) khi bắt đầu phiên bản Windows 2003 trong số Elastic Compute Cloud (EC2) của Amazon không?Khối lượng EBS tự động trong Amazon EC2 Windows Instance
Trả lời
Setup:
- Đảm bảo âm lượng EBS được định dạng và dán nhãn (trong ví dụ này tôi sử dụng nhãn PDRIVE).
- Thiết lập một ánh xạ ổ đĩa sử dụng Ec2ConfigServiceSettings.exe
- Cài đặt Java trên dụ
- Cài đặt EC2 API công cụ dòng lệnh
- Cài đặt một bản sao của cert của bạn và tư nhân chính
- Cài đặt một bản sao của curl. exe (công cụ mã nguồn mở)
bạn có thể dùng trình soạn thảo chính sách nhóm để thiết lập kịch bản này như kịch bản khởi động của bạn. Xem http://technet.microsoft.com/en-us/library/cc739591(WS.10).aspx để biết thêm thông tin.
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
Tôi đã tìm thấy mã Ruby sau đây tại http://www.ioncannon.net/system-administration/199/automounting-amazon-ebs-volumes-on-ec2-instances/ lịch sự của Carson McDonald. Nó dành cho Linux/Unix nhưng có lẽ bạn có thể tái sử dụng nó cho Ruby trên Windows 2003 hoặc có nó phục vụ như một mô hình để làm điều đó trong một số ngôn ngữ kịch bản khác.
Lưu ý rằng bạn có thể chuyển những thứ vào hình ảnh của mình dưới dạng dữ liệu người dùng như ID khối lượng ECS EBS và tên thiết bị (ví dụ:/dev/sdh trong ví dụ sau hoặc bất kỳ thứ gì trong Windows). Bạn có thể truy cập dữ liệu người dùng từ chính cá thể đó dưới dạng siêu dữ liệu như được thực hiện dưới đây để lấy được cá thể-id. Cụ thể hơn, bạn truy cập http://169.254.169.254/1.0/user-data để truy cập dữ liệu người dùng.
#!/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. Đính kèm EBS khi khởi động Amazon EC2 Spot Instance
- 2. Rsync đến Amazon Ec2 Instance
- 3. Amazon EC2 có hoặc không có EBS?
- 4. Amazon EC2: Di chuyển một volume snapshot EBS để S3
- 5. Trong Amazon EC2, làm thế nào để sao chép một khối lượng EBS sang một người dùng khác?
- 6. Amazon EC2 - Bản sao lưu cục bộ của EBS AMI
- 7. Vấn đề về không gian đĩa Amazon EC2 và EBS
- 8. Làm thế nào để khởi chạy EC2 instance với Boto, xác định kích thước của EBS?
- 9. Kết nối với amazon ec2 instance với ssh - timeout
- 10. Truy cập Heroku Postgres Instance từ EC2
- 11. các bước để bảo vệ amazon EC2 + EBS
- 12. Amazon AWS EC2 Instance - Không thể kết nối với SSH
- 13. Chạy Amazon EC2 AMI trong Windows
- 14. Amazon EC2 - Hoán đổi thiết bị lưu trữ mẫu gốc với thiết bị EBS
- 15. aws CloudFormation AWS :: EC2 :: Instance BlockDeviceMappings and Volumes
- 16. Kích cỡ màn hình giám sát trên Amazon EBS volume
- 17. SQL Server Express 2008 R2 để sử dụng sản xuất trên Amazon EC2 Micro Instance
- 18. Amazon EC2 tự động tắt với tắt máy duyên dáng?
- 19. Số lượng khối lượng đính kèm tối đa cho mỗi phiên bản Amazon EC2 là bao nhiêu?
- 20. Bật SSL trên apache instance trên EC2
- 21. Đặt tên EC2 Instance trong mẫu CloudFormation?
- 22. S3 Proxy tới EC2 Instance
- 23. Làm thế nào để tự động chụp nhanh một thể tích của một cá thể Amazon EC2?
- 24. hướng dẫn mới bắt đầu cho Amazon Web Services (EC2, S3, RDS, EBS, v.v.)
- 25. Việc chụp nhanh một khối lượng EBS có làm tăng độ tin cậy không?
- 26. Làm cách nào để 'làm ấm' bộ nhớ EC2/EBS?
- 27. Đám mây đại lý của Jenkins Amazon EC2 - Windows slaves
- 28. Nhận DNS công khai của Amazon EC2 Instance từ JAVA API
- 29. Tại sao tôi không thấy nội dung mới trong khối lượng Amazon EBS được tạo từ ảnh chụp nhanh hiện có?
- 30. Không thể duyệt đến EC2 Instance của tôi