问题
以下问题出现在安全客户端:
{"timestamp":"2017-01-19T09:49:14.803754+0000","level":"fatal","message": "check name cannot contain spaces or special characters","object":{"handlers": ["mailer","sms"],"command":"check-ports.rb -p 234","interval":30,"standalone": true,"name":"port 234"}}
目前用户需要debuggingsensu-client日志logging才能发现问题,通过validationinput可以防止问题出现。
目标
为避免使用此angular色的用户使用包含空格或特殊字符的名称,例如:
sensu_client_checks_metrics_common: - cmd: check-cpu - cmd: check-memory-percent - cmd: check-ntp - cmd: check-swap-percent handlers: - mailer - cmd: metrics-cpu handlers: - relay - cmd: metrics-memory-percent handlers: - relay - cmd: metrics-disk handlers: - relay - cmd: metrics-disk-usage handlers: - relay
让Ansible运行失败并指示input无效
讨论
在木偶之一可以使用Stdlib来validationinput,例如是variablesX一个string,是否等于哈希? 例如,在这个模块中 ,版本应该是一个string,如果不是这样的话,Puppet运行将失败:
validate_string($version)
并指出该版本需要是一个string。
如何validationAnsible中的input?
您可以在angular色的开始处使用assert模块来validationvariables值:
- assert: that: - "my_param <= 100" - "my_param >= 0" msg: "'my_param' must be between 0 and 100"