Assertions and constraints
In Ansible: you can use assert or fail module. 

- 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 &lt;= 6


In Puppet: there is fail function evaluated during parsing phase which cause parsing failure on server (see question on StackOverflow) 

 if length($cluster_name) &gt; 6 {
      fail("Cluster name is too long. Should be less than 6 chars.")
 }