python - Ansible 模块条件要求
问题描述
我目前正在用 python 编写我的第一个 Ansible 模块。我有类似的东西:
module_args = dict(
foo=dict(type='str', required=True),
bar=dict(type='str', required=True),
is_bar=dict(type='bool', required=False, default=False)
)
它是一种告诉 Ansiblebar
仅在is_bar
设置为 True 时才需要的方法吗?或者我是否需要根据需要放置 bar 并检查我自己的代码?
谢谢
解决方案
根据ansible docs AnsibleModule()
接受一个required_if
论点。
在您的情况下,这在初始化您的时意味着以下内容AnsibleModule()
:
module = AnsibleModule(
argument_spec=dict(
foo=dict(type='str', required=True),
bar=dict(type='str'),
is_bar=dict(type='bool', required=False, default=False),
),
required_if=[
('is_bar', True, ('bar')),
]
# ... and potentially other arguments
)
有关如何工作的详细说明,另请参见此处。required_if
例如,您可以定义多个必需的参数(如果已传入另一个参数),并且还可以具有互斥的参数。
推荐阅读
- css - 如何用css弯曲轮廓?
- angular - 运行时错误:Object(...) 不是函数 Ionic/Firebase/Angular
- c# - 使用 INNER JOIN 获取数字作为名称
- angularjs - angularJS中的引导进度条使用firebase动态检索值
- php - 可以用 IN 语句提取 JSON 吗?
- ansible - 使用 debug=ON 的 Ansible JSON 输出
- r - R:dplyr::mutate 使用由作为字符串传递的变量组合组成的表达式
- facebook - Facebook 发布为 Swift 4 中的页面
- elasticsearch - 使用带有filebeat的logstash时出现权限错误
- mysql - 使用 GROUP BY 时防止行混合?