如何验证 Ansible 中的变量内容?

如何验证 Ansible 中的变量内容?

ansible-lint 仅检查任务/处理程序,并不迭代变量(例如,如果您使用with_items,它将不会迭代所有项目)并且 yamllint 仅检查外观问题并且很难使用自定义规则进行定制。

是否有一个工具可以在将 YAML 文件中的变量输入到 Ansible 之前验证其中的实际数据?

例子:

  • 给定变量不能包含特定字符串
  • 变量user_ssh_key不能authorized_keys有注释
  • ssh_enabled输入模块的变量service不能为 True
  • 等等...

答案1

您可以使用断言测试字符串来实现这一目标。

就像这样:

- hosts: localhost
  vars:
    variable: 'green'
  tasks:
    - assert:
        that: variable is match("green")
        success_msg: "Variable is green"
        fail_msg: "Variable is not green"

你可以

将字符串与子字符串或正则表达式进行匹配,使用matchsearchregex测试

相关内容