Điểm:1

Sử dụng mong đợi để tự động cài đặt Alpine Linux trong FreeBSD trong Bhyve

lá cờ mx

Tôi đang cố gắng tự động cài đặt Alpine Linux trong vm-bhyve trong FreeBSD và dự kiến ​​sẽ chết ngay sau khi menu khởi động hết thời gian chờ và khởi chạy cài đặt Alpine Linux.

#!/usr/bin/env mong đợi
spawn vm install -f alpine alpine.iso # rút gọn cho ngắn gọn
mong đợi "đăng nhập localhost:"
gửi "root\r"
...

Điều này dẫn đến lỗi sau:

"trong khi thực hiện
"gửi "root\r"

Tôi nghi ngờ rằng bất cứ khi nào màn hình rõ ràng và nó bắt đầu khởi động, điều đó khiến bạn nhầm lẫn khi nghĩ rằng chương trình đã hoàn tất? Và kết quả là kịch bản chết.

Tôi chưa bao giờ mã hóa kỳ vọng theo cách này trước đây, có thể thực hiện điều đó với kỳ vọng không?

Tôi cũng đã thử đặt thời gian chờ toàn cầu trước khi tạo cmd cài đặt vm khởi động và ngay lập tức đi vào bảng điều khiển cho khách, nhưng điều đó không thay đổi bất cứ điều gì nên tôi đã loại trừ nó khỏi tập lệnh ở trên. Ngủ ở cùng một chỗ không giúp được gì, nó chỉ làm chậm quá trình khởi động (và sau đó là lỗi do tôi đặt cho chế độ ngủ).

CHỈNH SỬA: Tôi đang cố khởi chạy trình cài đặt ở chế độ nền, ngủ 30 giây, sau đó đính kèm bảng điều khiển. Tại thời điểm này, mong đợi Nên công việc.

lá cờ fo
Tôi khuyên bạn nên sử dụng `autoexpect` để ghi lại cài đặt tương tác đầy đủ. Mã mong đợi kết quả rất dài dòng nhưng có thể được làm sạch nếu cần.
lá cờ fo
Ngoài ra, trong khi phát triển tập lệnh mong đợi, hãy khởi chạy tập lệnh đó với `expect -d` để bật đầu ra gỡ lỗi chi tiết: điều này có thể xác định lý do tại sao các mẫu mong đợi của bạn không khớp (thường có khoảng trắng "ẩn").
lá cờ mx
Ý tưởng tuyệt vời, tôi không biết điều đó tồn tại. Thật không may, cái này cũng chết, tôi *nghĩ* nó không giống thiết bị đầu cuối. Nó đã thu được nhiều sản lượng hơn như mong đợi .
Điểm:0
lá cờ mx

Tôi có nó hoạt động trong cả hai trường hợp (vm install -f và sử dụng bảng điều khiển vm để đính kèm vào máy ảo đang chạy).

Vấn đề trong trường hợp của tôi là tôi đã bắt đầu với một cấu hình mới và cấu hình mới đó có cài đặt không hợp lệ (thông qua PCI). Tôi nghĩ rằng tôi đã khởi động mà không mong đợi và nó đã hoạt động; tuy nhiên, tôi đã tạo lại máy và cấu hình của tôi đã bị ghi đè.

Sử dụng autoexpect cho phép tôi ghi lại nhiều chi tiết hơn mà lẽ ra tôi đã có và là một cách tuyệt vời để chuẩn bị các kịch bản mong đợi.

Bây giờ, quy trình đối với tôi là thực hiện cài đặt freebsd, sau đó khởi động vào hệ thống và khi khởi động, hãy kiểm tra xem VM có tồn tại không, nếu không, hãy tạo chúng bằng cách sử dụng mong đợi.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.