我正在攻击一个Ansible解决方案,将一个notify.sh bash脚本部署为pam.d / pam_exec配置的一部分。
该脚本使用了一堆变量,我被告知需要将它们作为单独的yml文件的一部分(以便其他人可以更改或更新它们),而不是直接在脚本中定义,这就是我通常使用的做。
我构建了vars文件,我在其中定义了脚本应该在运行时使用的变量。
现在我的问题是我希望能够从我正在部署的bash脚本中以标准格式{{my_variable}}访问ansible变量。
这甚至可能吗?如果不可能,您在安装后将变量插入脚本的建议是什么?
我有一种感觉我接近答案,但是scowering Ansible帮助文件尚未产生任何效果。
我唯一想到的就是使用lineinfile模块在已经安装后更新shell脚本,但我觉得这可能有点太hacky了,这里可能有一个更优雅的解决方案。
我感谢任何和所有答案。
答案 0 :(得分:3)
当然 - / vars / main.yml中的任何内容都可自动使用,或者您可以使用http://docs.ansible.com/ansible/include_vars_module.html加载自定义文件。然后,使用模板并像这样部署脚本:
template:
src: script_template.j2
dest: "path/notifiy.sh"
mode: 700