Shell script xuất ra bàn điều khiển
Khi bạn khởi chạy một phiên bản trong Amazon EC2, bạn có tùy chọn chuyển dữ liệu người dùng sang phiên bản có thể được sử dụng để thực hiện các tác vụ cấu hình tự động phổ biến và thậm chí chạy tập lệnh sau khi phiên bản bắt đầu. Bạn có thể chuyển hai loại dữ liệu người dùng sang Amazon EC2. tập lệnh shell và chỉ thị khởi tạo đám mây. Bạn cũng có thể chuyển dữ liệu này vào trình hướng dẫn khởi chạy phiên bản dưới dạng văn bản thuần túy, dưới dạng tệp (điều này hữu ích khi khởi chạy phiên bản bằng công cụ dòng lệnh) hoặc dưới dạng văn bản được mã hóa base64 (đối với lệnh gọi API) Show
Nếu bạn quan tâm đến các tình huống tự động hóa phức tạp hơn, hãy cân nhắc sử dụng AWS CloudFormation và AWS OpsWorks. Để biết thêm thông tin, hãy xem Hướng dẫn sử dụng AWS CloudFormation và Hướng dẫn sử dụng AWS OpsWorks Để biết thông tin về việc chạy các lệnh trên phiên bản Windows của bạn khi khởi chạy, hãy xem Chạy các lệnh trên phiên bản Windows của bạn khi khởi chạy và Quản lý cấu hình phiên bản Windows trong Hướng dẫn sử dụng Amazon EC2 dành cho Phiên bản Windows Trong các ví dụ sau, các lệnh từ Cài đặt máy chủ web LAMP trên Amazon Linux 2 được chuyển đổi thành tập lệnh shell và một tập hợp các lệnh khởi tạo đám mây chạy khi phiên bản khởi chạy. Trong mỗi ví dụ, các tác vụ sau được thực hiện bởi dữ liệu người dùng
điều kiện tiên quyếtCác ví dụ trong chủ đề này giả định như sau
Dữ liệu người dùng và shell scriptNếu bạn đã quen với shell scripting, đây là cách dễ nhất và đầy đủ nhất để gửi hướng dẫn tới một phiên bản khi khởi chạy. Việc thêm các tác vụ này vào thời điểm khởi động sẽ tăng thêm lượng thời gian cần thiết để khởi động phiên bản. Bạn nên dành thêm vài phút để hoàn thành các tác vụ trước khi kiểm tra xem tập lệnh người dùng đã hoàn thành thành công chưa Theo mặc định, tập lệnh dữ liệu người dùng và chỉ thị khởi tạo trên đám mây chỉ chạy trong chu kỳ khởi động khi bạn khởi chạy phiên bản lần đầu tiên. Bạn có thể cập nhật cấu hình của mình để đảm bảo rằng tập lệnh dữ liệu người dùng và lệnh khởi tạo trên đám mây của bạn chạy mỗi khi bạn khởi động lại phiên bản của mình. Để biết thêm thông tin, hãy xem Làm cách nào tôi có thể sử dụng dữ liệu người dùng để tự động chạy tập lệnh với mỗi lần khởi động lại phiên bản Amazon EC2 Linux của tôi? trong Trung tâm kiến thức AWS Tập lệnh trình bao dữ liệu người dùng phải bắt đầu bằng các ký tự 4 và đường dẫn đến trình thông dịch mà bạn muốn đọc tập lệnh (thường là /bin/bash). Để có phần giới thiệu tuyệt vời về shell scripting, hãy xem HƯỚNG DẪN LẬP TRÌNH BASH trong Dự án Tài liệu Linux (tldp. tổ chức)Các tập lệnh được nhập dưới dạng dữ liệu người dùng được chạy với tư cách là người dùng 5, vì vậy không sử dụng lệnh sudo trong tập lệnh. Hãy nhớ rằng mọi tệp bạn tạo sẽ thuộc quyền sở hữu của 5; . Ngoài ra, vì tập lệnh không chạy tương tác, nên bạn không thể bao gồm các lệnh yêu cầu phản hồi của người dùng (chẳng hạn như cập nhật yum không có cờ 7)Nếu sử dụng API AWS, bao gồm cả AWS CLI, trong tập lệnh dữ liệu người dùng, thì bạn phải sử dụng cấu hình phiên bản khi khởi chạy phiên bản. Cấu hình phiên bản cung cấp thông tin đăng nhập AWS phù hợp theo yêu cầu của tập lệnh dữ liệu người dùng để thực hiện lệnh gọi API. Để biết thêm thông tin, hãy xem Sử dụng cấu hình phiên bản trong Hướng dẫn sử dụng IAM. Các quyền bạn gán cho vai trò IAM tùy thuộc vào dịch vụ bạn đang gọi bằng API. Để biết thêm thông tin, hãy xem Vai trò IAM cho Amazon EC2 Tệp nhật ký đầu ra khởi tạo trên đám mây ghi lại đầu ra của bảng điều khiển để dễ dàng gỡ lỗi tập lệnh của bạn sau khi khởi chạy nếu phiên bản không hoạt động theo cách bạn dự định. Để xem tệp nhật ký, hãy kết nối với phiên bản và mở 8Khi tập lệnh dữ liệu người dùng được xử lý, nó sẽ được sao chép vào và chạy từ 9/. Tập lệnh không bị xóa sau khi chạy. Đảm bảo xóa tập lệnh dữ liệu người dùng khỏi 9/ trước khi bạn tạo AMI từ phiên bản. Nếu không, tập lệnh sẽ tồn tại trong thư mục này trên mọi phiên bản được khởi chạy từ AMIDữ liệu người dùng và bảng điều khiểnBạn có thể chỉ định dữ liệu người dùng phiên bản khi khởi chạy phiên bản. Nếu ổ đĩa gốc của phiên bản là ổ đĩa EBS, bạn cũng có thể dừng phiên bản và cập nhật dữ liệu người dùng của nó Chỉ định dữ liệu người dùng phiên bản khi khởi chạyThực hiện theo các thủ tục cho. Trường dữ liệu Người dùng nằm trong phần của trình hướng dẫn phiên bản khởi chạy. Nhập tập lệnh shell của bạn vào trường Dữ liệu người dùng rồi hoàn tất quy trình khởi chạy phiên bản Trong tập lệnh mẫu bên dưới, tập lệnh tạo và định cấu hình máy chủ web của chúng tôi
Dành đủ thời gian để phiên bản khởi chạy và chạy các lệnh trong tập lệnh của bạn, sau đó kiểm tra xem tập lệnh của bạn đã hoàn thành các tác vụ mà bạn dự định chưa Ví dụ của chúng tôi, trong trình duyệt web, hãy nhập URL của tệp kiểm tra PHP mà tập lệnh đã tạo. URL này là địa chỉ DNS công cộng của phiên bản của bạn, theo sau là dấu gạch chéo lên và tên tệp
Bạn sẽ thấy trang thông tin PHP. Nếu bạn không thể xem trang thông tin PHP, hãy kiểm tra xem nhóm bảo mật bạn đang sử dụng có chứa quy tắc cho phép lưu lượng HTTP (cổng 80) không. Để biết thêm thông tin, xem (Tùy chọn) Nếu tập lệnh của bạn không hoàn thành các tác vụ mà bạn mong đợi hoặc nếu bạn chỉ muốn xác minh rằng tập lệnh của mình đã hoàn thành mà không có lỗi, hãy kết nối với phiên bản, kiểm tra tệp nhật ký đầu ra khởi tạo trên đám mây ( 8) và xem Để biết thêm thông tin gỡ lỗi, bạn có thể tạo kho lưu trữ nhiều phần Mime bao gồm phần dữ liệu khởi tạo trên đám mây với chỉ thị sau
Chỉ thị này gửi đầu ra lệnh từ tập lệnh của bạn tới 8. Để biết thêm thông tin về các định dạng dữ liệu khởi tạo trên đám mây và tạo kho lưu trữ đa phần Mime, hãy xem Định dạng khởi tạo trên đám mâyXem và cập nhật dữ liệu người dùng phiên bảnĐể cập nhật dữ liệu người dùng phiên bản, trước tiên bạn phải dừng phiên bản. Nếu phiên bản đang chạy, bạn có thể xem dữ liệu người dùng nhưng không thể sửa đổi dữ liệu đó Khi bạn dừng một phiên bản, dữ liệu trên mọi ổ lưu trữ phiên bản sẽ bị xóa. Để giữ dữ liệu từ khối lượng lưu trữ phiên bản, hãy đảm bảo sao lưu dữ liệu đó vào bộ lưu trữ liên tục Bảng điều khiển mớiĐể sửa đổi dữ liệu người dùng cá thể
Để sửa đổi dữ liệu người dùng cá thể
Dữ liệu người dùng và chỉ thị khởi tạo trên đám mâyGói cloud-init định cấu hình các khía cạnh cụ thể của phiên bản Amazon Linux mới khi phiên bản này được khởi chạy; . Để biết thêm thông tin về các tác vụ cấu hình mà gói cloud-init thực hiện cho các phiên bản Amazon Linux, hãy xem Các chỉ thị người dùng khởi tạo trên đám mây có thể được chuyển đến một phiên bản khi khởi chạy giống như cách mà một tập lệnh được chuyển, mặc dù cú pháp là khác nhau. Để biết thêm thông tin về cloud-init, hãy xem http. // đám mây. đọcthedocs. org/vi/mới nhất/chỉ mục. html Theo mặc định, tập lệnh dữ liệu người dùng và chỉ thị khởi tạo trên đám mây chỉ chạy trong chu kỳ khởi động khi bạn khởi chạy phiên bản lần đầu tiên. Bạn có thể cập nhật cấu hình của mình để đảm bảo rằng tập lệnh dữ liệu người dùng và lệnh khởi tạo trên đám mây của bạn chạy mỗi khi bạn khởi động lại phiên bản của mình. Để biết thêm thông tin, hãy xem Làm cách nào tôi có thể sử dụng dữ liệu người dùng để tự động chạy tập lệnh với mỗi lần khởi động lại phiên bản Amazon EC2 Linux của tôi? trong Trung tâm kiến thức AWS Việc thêm các tác vụ này vào thời điểm khởi động sẽ tăng thêm lượng thời gian cần thiết để khởi động một phiên bản. Bạn nên cho phép thêm một vài phút để các tác vụ hoàn thành trước khi kiểm tra xem các chỉ thị dữ liệu người dùng của bạn đã hoàn thành chưa Để chuyển các lệnh khởi tạo trên đám mây tới một phiên bản có dữ liệu người dùng
Dữ liệu người dùng và AWS CLIBạn có thể sử dụng AWS CLI để chỉ định, sửa đổi và xem dữ liệu người dùng cho phiên bản của mình. Để biết thông tin về cách xem dữ liệu người dùng từ phiên bản của bạn bằng siêu dữ liệu phiên bản, hãy xem Trên Windows, bạn có thể sử dụng Công cụ AWS dành cho Windows PowerShell thay vì sử dụng AWS CLI. Để biết thêm thông tin, hãy xem trong Hướng dẫn sử dụng Amazon EC2 dành cho Phiên bản Windows Thí dụ. Chỉ định dữ liệu người dùng khi khởi chạyĐể chỉ định dữ liệu người dùng khi bạn khởi chạy phiên bản của mình, hãy sử dụng lệnh phiên bản chạy với tham số 7. Với phiên bản chạy, AWS CLI thực hiện mã hóa base64 dữ liệu người dùng cho bạnVí dụ sau đây cho thấy cách chỉ định tập lệnh dưới dạng chuỗi trên dòng lệnh
Ví dụ sau đây cho thấy cách chỉ định tập lệnh bằng tệp văn bản. Đảm bảo sử dụng tiền tố 8 để chỉ định tệp
Sau đây là một tệp văn bản ví dụ với tập lệnh shell Ví dụ. Sửa đổi dữ liệu người dùng của một phiên bản đã dừngBạn có thể sửa đổi dữ liệu người dùng của một phiên bản đã dừng bằng lệnh sửa đổi thuộc tính phiên bản. Với thuộc tính phiên bản sửa đổi, AWS CLI không thực hiện mã hóa base64 dữ liệu người dùng cho bạn
Sử dụng các tham số 9 và 0 để sử dụng tệp văn bản được mã hóa để chỉ định dữ liệu người dùng. Đảm bảo sử dụng tiền tố 8 để chỉ định tệp 1Ví dụ. Xóa dữ liệu người dùng của một phiên bản đã dừngĐể xóa dữ liệu người dùng hiện có, hãy sử dụng lệnh sửa đổi thuộc tính phiên bản như sau 2Ví dụ. Xem dữ liệu người dùngĐể truy xuất dữ liệu người dùng cho một phiên bản, hãy sử dụng lệnh description-instance-attribute. Với thuộc tính mô tả phiên bản, AWS CLI không thực hiện giải mã base64 dữ liệu người dùng cho bạn 3Sau đây là ví dụ đầu ra với dữ liệu người dùng base64 được mã hóa 4
Sau đây là ví dụ đầu ra
Kết hợp các tập lệnh shell và chỉ thị khởi tạo đám mâyTheo mặc định, bạn chỉ có thể bao gồm một loại nội dung trong dữ liệu người dùng tại một thời điểm. Tuy nhiên, bạn có thể sử dụng các loại nội dung 4 và 5 trong tệp mime-multi part để bao gồm cả tập lệnh shell và chỉ thị cloud-init trong dữ liệu người dùng của bạnPhần sau đây hiển thị định dạng mime-multi 8Ví dụ: dữ liệu người dùng sau đây bao gồm các chỉ thị khởi tạo trên đám mây và tập lệnh bash shell. Các lệnh cloud-init tạo một tệp (_______12_______6) và ghi ___12_______7 vào tệp đó. Tập lệnh bash shell tạo một tệp ( 8) và ghi 9 vào tệp đó
Làm cách nào để hiển thị đầu ra trong tập lệnh shell?Có nhiều cách để chuyển hướng đầu ra từ các lệnh và tập lệnh shell. . Chuyển hướng STDOUT. . Chuyển hướng STDERR. . Gửi STDOUT và STDERR tới cùng một tệp. . Chuyển hướng đầu ra, nhưng nối thêm tệp. . Chuyển hướng đến một quá trình khác hoặc đến hư không. . Sử dụng chuyển hướng trong một tập lệnh Làm cách nào để lấy đầu ra từ tập lệnh bash?Bash Gán đầu ra của lệnh Shell cho và lưu vào một biến . var=$(command-name-here) var=$(command-name-here arg1) var=$(/path/to/command) var=$(/path/to/command arg1 arg2). var=`tên-lệnh-ở đây` var=`tên-lệnh-ở đây arg1` var=`/path/to/command` var=`/path/to/command arg1 arg2` Làm cách nào để lưu đầu ra tập lệnh Shell trong tệp văn bản?Sử dụng lệnh tee. Khi chúng tôi sử dụng toán tử chuyển hướng, đầu ra sẽ chỉ chuyển đến tệp, toán tử chuyển hướng không in nó trên thiết bị đầu cuối. Để xem đầu ra trên thiết bị đầu cuối và cũng lưu nó vào tệp, chúng ta có thể sử dụng lệnh tee. Nó gửi đầu ra của tệp cũng như đến thiết bị đầu cuối |