我在高级主题中阅读了Ansible docs的这一页。here
---
my_unsafe_array:
- !unsafe 'unsafe element'
- 'safe element'
my_unsafe_hash:
unsafe_key: !unsafe 'unsafe value'
这个不安全的关键字有什么用?
它告诉我们不安全的原始字符串。
我不知道该怎么做,想不出任何用例。任何人都可以指定任何有用的用例吗?
答案 0 :(得分:0)
如果您从任何网址/用户输入或其他任何您无法确定是否没有花括号的内容中获取某些数据,则使用该用例。
让我们来看看这个愚蠢的例子,让我们假设file_str
从外面到达那里(web api,script,...)。只需运行此剧本:并在出现提示时输入{{ user_pass }}
:
---
- hosts: localhost
connection: local
vars:
- user_pass: user_secret_pass
vars_prompt:
- name: file_str
prompt: File content
private: False
tasks:
- shell:
echo {{ file_str }} > /tmp/echo_fstr
您将在user_secret_pass
中看到/tmp/echo_fstr
使用!unsafe
关键字,您会看到{{ user_pass }}
int /tmp/echo_fstr
。
截至最新版本的ansible,它不起作用 https://github.com/ansible/ansible/issues/23734