Security 如何通过Ansible中的额外变量阻止重写变量?
我正在使用Ansible Tower来展示游戏。用户启动了调用RESTAPI的工作,并提供了一些额外的变量。我必须对照其他变量验证提供的变量。例如:user提供主机名,清单变量中有:allowed\u hostnames。 问题是额外变量胜过一切,所以用户总是可以覆盖允许值列表中的变量,而测试并没有意义。 在Tower中有一个调查功能,可以用来限制用户允许更改的变量,但启用调查将阻止dict变量,我需要它 问:“问题是额外的球员胜过一切” 答:避免变量。例如任务Security 如何通过Ansible中的额外变量阻止重写变量?,security,ansible,ansible-tower,ansible-awx,Security,Ansible,Ansible Tower,Ansible Awx,我正在使用Ansible Tower来展示游戏。用户启动了调用RESTAPI的工作,并提供了一些额外的变量。我必须对照其他变量验证提供的变量。例如:user提供主机名,清单变量中有:allowed\u hostnames。 问题是额外变量胜过一切,所以用户总是可以覆盖允许值列表中的变量,而测试并没有意义。 在Tower中有一个调查功能,可以用来限制用户允许更改的变量,但启用调查将阻止dict变量,我需要它 问:“问题是额外的球员胜过一切” 答:避免变量。例如任务 - debug: msg
- debug:
msg: "{{ my_host|default('') }} is allowed to ..."
when: "my_host|default('') in lookup('file', 'allowed_hosts.yml')|from_yaml"
用数据
$ cat allowed_hosts.yml
- host1
- host2
- host3
- host9
给予
下一个选项可能是管道、redis、modgodb。。。查找、自定义筛选或自定义查找。基于@Vladimir answer,我这样做:
- name: Check variables
fail:
when: "{{ {'restricted_variables':restricted_variables} != lookup('file', 'restricted_variables.yml')|from_yaml }}"
其中受限变量.yml
:
restricted_variables:
variable1: somevalue
variable2:
var1: 1
var2: 2
restricted_variables:
variable1: somevalue
variable2:
var1: 1
var2: 2