การยืนยันและข้อ จำกัด


11

ฉันสร้างเท็มเพลตเพื่อสร้างไฟล์กำหนดค่าและบริการที่ใช้ไฟล์นี้จะมีข้อ จำกัด ตามความยาวของตัวระบุ

หากตัวระบุมีความยาวมากกว่าพูดตัวอักษร 6 ตัวบริการจะได้รับส่วนหนึ่งจากการใช้การกำหนดค่าล้มเหลวและปล่อยให้โหนดอยู่ในสถานะไม่สอดคล้องกัน

ฉันจะดำเนินการยืนยันเพื่อทริกเกอร์ธุรกรรมการปรับใช้ล้มเหลวได้อย่างไรเพื่อป้องกันบริการของโหนดเป้าหมายไม่ให้ทำการกำหนดค่าผิดพลาด

สถานการณ์เฉพาะของฉันคือเกลือ แต่ฉันอยากรู้ว่าระบบอื่นแก้ปัญหาได้อย่างไร


ในพ่อครัวฉันจะเพิ่มกฎทับหลังไม่ว่าจะเป็น rspec หรือ foodcritic หรือตรวจสอบให้แน่ใจว่าตัวระบุตรงกันในสูตร ไม่มีความคิดสำหรับเรื่องเกลือฉันไม่คิดว่าจะมีคำตอบแบบ gerenic เนื่องจากตัวจัดการการกำหนดค่าแต่ละรายการมีความเฉพาะของตัวเอง
Tensibai

ฉันจะแก้ไขคำตอบให้เจาะจงน้อยลง
Michael Mol

ในขณะนี้การไตร่ตรองปัจจุบันของฉันสำหรับโซลูชัน Saltstack + Jinja จะเป็นมาโครที่พยายามอ่านจากไฟล์ที่ไม่มีอยู่ โหมดแสดงภาพอื่น ๆ จะทำงานแตกต่างกัน ยกตัวอย่างเช่น Python renderer นั้นไม่สำคัญเลย เพียงโยนข้อยกเว้น
Michael Mol

คำตอบ:


7

ใน Ansible: คุณสามารถใช้assertหรือfailโมดูล

- 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

ใน Puppet: มีฟังก์ชั่นการประเมินล้มเหลวในระหว่างการแยกวิเคราะห์ซึ่งทำให้การแยกวิเคราะห์ล้มเหลวบนเซิร์ฟเวอร์ (ดูคำถามเกี่ยวกับ StackOverflow )

 if length($cluster_name) > 6 {
      fail("Cluster name is too long. Should be less than 6 chars.")
 }
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.