Khẳng định và ràng buộc


11

Tôi đang xây dựng một mẫu để xây dựng một tệp cấu hình và dịch vụ tiêu thụ tệp này đặt các ràng buộc về độ dài định danh.

Nếu số nhận dạng dài hơn 6 ký tự, dịch vụ sẽ nhận được một phần thông qua việc áp dụng cấu hình, không thành công và để nút ở trạng thái không nhất quán.

Làm cách nào tôi có thể thực hiện xác nhận để kích hoạt lỗi giao dịch triển khai, ngăn dịch vụ của các nút mục tiêu bị định cấu hình sai?

Hoàn cảnh đặc biệt của tôi là Salt, nhưng tôi sẽ tò mò muốn xem các hệ thống khác cũng giải quyết vấn đề như thế nào.


Vâng, trong đầu bếp, tôi sẽ thêm một quy tắc linting, rspec hoặc foodcritic hoặc đảm bảo định danh khớp trong công thức. Không có ý tưởng nào cho muối, tôi không nghĩ rằng có một câu trả lời gerenic vì mỗi trình quản lý cấu hình có tính đặc thù riêng của nó
Tensibai

Tôi sẽ chỉnh sửa câu trả lời để cụ thể hơn một chút.
Michael Mol

Hiện tại, sự suy ngẫm hiện tại của tôi về giải pháp Saltstack + Jinja sẽ là một macro cố gắng đọc từ một tệp không thể tồn tại. Các trình kết xuất khác sẽ hoạt động khác nhau. Một trình kết xuất Python, ví dụ, sẽ là tầm thường; chỉ đơn giản là ném một ngoại lệ.
Michael Mol

Câu trả lời:


7

Trong Ansible: bạn có thể sử dụng asserthoặc failmô-đun.

- name: "Make sure web_sites is dictionary"
  fail: msg="web_sites should be dictionary"
  when: web_sites is not dict  


- name: "cluster_name should be shorter than 6 chars"
  assert: 
       that: cluster_name|len <= 6

Trong Puppet: có chức năng fail được đánh giá trong giai đoạn phân tích cú pháp gây ra lỗi phân tích cú pháp trên máy chủ (xem câu hỏi trên StackOverflow )

 if length($cluster_name) > 6 {
      fail("Cluster name is too long. Should be less than 6 chars.")
 }
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.