주장과 제약


11

구성 파일을 빌드하기 위해 템플릿을 구성하고 있으며이 파일을 사용하는 서비스는 식별자 길이에 제약을 둡니다.

식별자가 6 자보다 길면 서비스는 구성 적용을 통해 부분적으로 이루어지고 실패하며 노드가 불일치 상태로 유지됩니다.

대상 노드의 서비스가 잘못 구성되지 않도록하여 어설 션을 수행하여 배포 트랜잭션 실패를 트리거하려면 어떻게해야합니까?

내 특별한 상황은 소금이지만 다른 시스템이 어떻게 문제를 해결하는지 궁금합니다.


주방장에서 나는 rspec 또는 foodcritic의 보푸라기 규칙을 추가하거나 레시피에서 식별자가 일치하는지 확인합니다. 소금에 대한 생각은 없습니다. 각 구성 관리자마다 고유 한 특성이 있기 때문에 문제가 있다고 생각하지 않습니다.
Tensibai

좀 덜 구체적으로 답변을 편집하겠습니다.
Michael Mol

현재 Saltstack + Jinja 솔루션에 대한 현재의 생각은 존재할 수없는 파일에서 읽으려고 시도하는 매크로 일 것입니다. 다른 렌더러는 다르게 작동합니다. 예를 들어, 파이썬 렌더러는 사소한 것입니다. 단순히 예외를 던지십시오.
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.