Nhóm của tôi đã tạo ra một số lượng lớn sách dạy nấu ăn. Tôi đã tự hỏi những phương pháp và khung nào tôi nên xem xét để chúng tôi có thể bắt đầu tạo các thử nghiệm để đảm bảo rằng các nút của chúng tôi được cấu hình đúng?
Nhóm của tôi đã tạo ra một số lượng lớn sách dạy nấu ăn. Tôi đã tự hỏi những phương pháp và khung nào tôi nên xem xét để chúng tôi có thể bắt đầu tạo các thử nghiệm để đảm bảo rằng các nút của chúng tôi được cấu hình đúng?
Câu trả lời:
Bạn có thể (cũng) nhìn vào Vagrant cho điều này.
Một video đang cho thấy cách sử dụng kết hợp các sách dạy nấu ăn của Vagrant và Chef. Và có một trang dành riêng cho Vagrant and Chef trên trang Opscode (cập nhật 2015-01-23: trang đã biến mất ...).
Có cucumber-chef
viên đá quý ruby và một cuốn sách được phát hành gần đây là Nelson-Smith et al - "Cơ sở hạ tầng hướng đến thử nghiệm với đầu bếp" sử dụng loại đá quý đó - http://www.cucumber-chef.org/
Chỉ cần nhớ điều này từ danh sách theo dõi github của tôi: https://github.com/gregretkowski/vmth/
VMTH (Khai thác thử nghiệm máy ảo) cung cấp cơ chế kiểm tra đơn vị tự động hóa cơ sở hạ tầng của bạn - chính sách bù nhìn, công thức nấu ăn, phát hành tập lệnh triển khai, v.v. Nó sử dụng các tính năng của màn hình VM hiện đại (như qemu) để chụp lại trạng thái hệ thống, sau đó đặt lại trạng thái đó sau mỗi thử nghiệm, để một loạt các thử nghiệm có thể được thực hiện trên một cá thể VM liên tiếp
Có một số tùy chọn.
Opscode có hỗ trợ "no-op" trong lộ trình phát triển Chef sẽ giúp kiểm tra. Chúng tôi lập luận rằng "không-op" không nhất thiết phải làm những gì bạn muốn, nhưng hiểu được mong muốn cho tính năng này.
Một số câu trả lời ở đây có vẻ hơi cũ. Đối với CI và thử nghiệm cục bộ, tôi sẽ xem xét tận dụng một công cụ khai thác thử nghiệm như Test Kitchen cũng hỗ trợ Vagrant nếu bạn đã sử dụng nó.
Nó sẽ cho phép bạn chạy các coobkook của mình chống lại nhiều giải pháp đám mây và ảo hóa hiện nay: EC2, Digital Ocean, Vagrant, Docker, v.v.
Nó cũng có các plugin để cho phép bạn chạy một trong nhiều công cụ kiểm tra cơ sở hạ tầng tồn tại ngày nay:
Theo kinh nghiệm của tôi, cách duy nhất để thực sự làm điều này là với môi trường dàn dựng và thực hành phát triển cẩn thận. Việc loại bỏ công việc thực tế cần thực hiện là vô cùng lộn xộn và mong manh, và các bộ thử nghiệm CI chạy trên cam kết hoặc đẩy rất nhiều nỗ lực để viết và duy trì (mặc dù Chef có thể giỏi hơn rất nhiều so với Puppet, đó là kinh nghiệm chính của tôi ), và mất một lượng thời gian vô lý để chạy.
CHỈNH SỬA
Ngay sau khi tôi viết bài này, tôi đột nhiên nhận ra rằng có thể có một cách để thực hiện thử nghiệm "đơn vị" hợp lý hiệu quả các công thức nấu ăn Chef / Puppet với một hệ thống tập tin liên minh và một số lượng đáng kể của giàn giáo. Tuy nhiên, tôi không thể tìm thấy bất cứ điều gì mà mọi người đã làm trong khu vực này. Tôi có thể vừa tìm cho mình một dự án.