2011-09-27 25 views
7

Có cách nào để khẳng định rằng một biến (hoặc cụ thể hơn là một thực tế) trong con rối có một giá trị cụ thể và hủy bỏ cài đặt nếu nó không?Có thể "khẳng định" trong Puppet không?

Đối với nền, đây là tình hình:

Trong hầu hết các trường hợp tôi có thể tham khảo hostnames, nhưng đôi khi tôi cần phải sử dụng một địa chỉ IP. Ví dụ: máy chủ lưu trữ nhật ký của chúng tôi cần mở một cổng trong tường lửa cho một số máy cụ thể (và không phải toàn bộ mạng con). Tôi cần sử dụng địa chỉ IP để mở một lỗ hổng trong tường lửa. Vì địa chỉ IP của máy không thay đổi, tôi đã lên kế hoạch mã hóa địa chỉ IP như một phần của cấu hình, nhưng tôi muốn kiểm tra các máy chủ riêng lẻ rằng địa chỉ IP thực sự khớp với địa chỉ trong cấu hình của nó và không thành công nếu nó không. Điều đó có thể không?

Trả lời

11

Tôi tin rằng một cái gì đó như thế này sẽ làm việc:

if $ipaddress != $expectedipaddress { 
    fail("IP mismatch") 
} 

Các fail() function gây lỗi phân tích cú pháp. Gói nó trong một điều kiện sẽ nhận được hành vi assert mà bạn muốn.

Tôi chưa thử nghiệm cách sử dụng cụ thể này, nhưng nếu phân tích cú pháp thất bại thì một danh mục mới không được biên soạn và khách hàng không nhận được bất kỳ thứ gì.

Các vấn đề liên quan