2013-04-09 35 views
11

Trong khi tạo cá thể AWS EC2 mới sử dụng API dòng lệnh EC2, tôi đang chuyển một số dữ liệu người dùng sang cá thể mới.Làm cách nào để kiểm tra xem liệu dữ liệu người dùng của tôi có chuyển sang phiên bản EC2 hoạt động hay không?

Bây giờ làm cách nào tôi biết liệu dữ liệu người dùng đó có được thực thi hay không?

Tôi nên kiểm tra xem nó như thế nào?

+0

Phụ thuộc vào AMI, nếu nó hỗ trợ điện toán đám mây init, nó sẽ được thực hiện. Nếu không, nó sẽ có sẵn thông qua các yêu cầu siêu dữ liệu và bạn cần phải xử lý nó từ đó. – datasage

+0

@datasage: tôi đang sử dụng AMI hỗ trợ đám mây. – Pravin

Trả lời

2

Gỡ rối sử dụng các kịch bản dữ liệu trên Amazon EC2 là một chút lúng túng thực sự, như thường có có cách nào để tích cực móc vào quá trình này, vì vậy một lý tưởng muốn đạt được truy cập thời gian thực tới kịch bản đầu ra sử dụng dữ liệu như tóm tắt trong Điều Eric Hammond của Logging user-data Script Output on EC2 Instances:

các Ubuntu AMIs gần đây vẫn gửi kịch bản sử dụng dữ liệu đến đầu ra giao diện điều khiển , vì vậy bạn có thể xem nó từ xa, nhưng nó không còn có sẵn trong syslog trên ví dụ. Đầu ra bàn điều khiển chỉ được cập nhật một vài phút sau khi khởi động cá thể, khởi động lại hoặc chấm dứt, buộc bạn đợi để xem đầu ra của tập lệnh dữ liệu người dùng cũng như không ghi lại kết quả có thể xuất hiện sau ảnh chụp nhanh .

Tùy thuộc vào thiết lập của bạn, bạn có thể muốn gửi các bản ghi đến một cơ sở khai thác gỗ từ xa như Loggly ngay lập tức, nhưng việc này được cài đặt đủ sớm rõ ràng là có thể loại của một vấn đề gà/trứng (mặc dù nó hoạt động tuyệt vời nếu các AMI xảy ra để được cấu hình giống như vậy).

+0

Tôi có thể chuyển các lệnh S3cms và s3fs như một phần của dữ liệu người dùng sang cá thể E2 không? – Pravin

+0

@Pravin - Chắc chắn, tập lệnh dữ liệu người dùng là các kịch bản shell thông thường, tức là bạn về cơ bản có thể làm bất cứ điều gì bạn có thể thực hiện trên dòng lệnh. trong một kịch bản shell cục bộ. Tất nhiên bạn cần đảm bảo rằng các yêu cầu của bạn như 's3fs' được cài đặt trên phiên bản EC2, tức là do AMI cung cấp hoặc đã được cung cấp bởi chính bạn từ tập lệnh dữ liệu người dùng trước khi sử dụng chúng lần lượt. –

+0

: - Tôi hava cài đặt s3cmd trên AMI và sử dụng AMI được cấu hình sẵn này, tôi đang tạo các phiên bản mới. Đối với điều này tôi đang đi qua dữ liệu người dùng như Tạo một diretory mới trên trường hợp mới và tải về tập tin từ S3. Nhưng tập lệnh này chỉ tạo thư mục chứ không phải tải xuống tệp từ S3. Chỉ cần xem llink sau đây http://stackoverflow.com/questions/16130952/passing-s3cmd-commands-as-user-data-to-ec2 – Pravin

1

Có dữ liệu người dùng của bạn tạo ra một tập tin trong thư mục của EC2/tmp của bạn để xem nếu nó hoạt động:

bob.txt:

#!/bin/sh 
echo 'Woot!' > /home/ec2-user/user-script-output.txt 

Sau đó khởi động với:

ec2-run-instances -f bob.txt -t t1.micro -g ServerPolicy ami-05cf5c6d -v

+0

tôi có thể chuyển các lệnh s3cmd và s3fs làm dữ liệu người dùng sang cá thể ec2 không? – Pravin

+0

Các tập lệnh của bạn được thực hiện trên máy từ xa khi khởi động (sớm trong giai đoạn), miễn là nó được cài đặt sẵn và được tải. –

11

Bạn có thể xác minh bằng các bước sau

  1. SSH trên mắt EC2 dụ
  2. Kiểm tra nhật ký của kịch bản dữ liệu người dùng của bạn trong
    • /var/log/cloud-init.log
    • /var/log/cloud-init-output.log

Bạn có thể xem tất cả tin đăng nhập của kịch bản dữ liệu người dùng của bạn và nó cũng sẽ tạo thư mục /etc/cloud.

4

Chỉ để tham khảo, bạn có thể kiểm tra xem dữ liệu người dùng có được thực thi hay không bằng cách xem nhật ký hệ thống từ bảng điều khiển EC2.Nhấp chuột phải vào dụ của bạn - Instance Cài đặt - Nhận đăng nhập hệ thống

enter image description here

này sẽ mở một cửa sổ modal với hệ thống các bản ghi

enter image description here