【发布时间】:2020-12-02 10:18:15
【问题描述】:
在 Ansible(如果重要的话,RHEL 8)中,我需要从包含敏感内容的模板创建一个临时文件。完成其他一些任务后,应该将其删除。临时文件是将作为命令运行的安装程序的应答文件。安装程序需要用户名和密码。
我不知道是否有办法在 Ansible 中轻松做到这一点。
我正在寻找的蛮力实现看起来类似于:
- name: Create answer file
template:
src: answerfile.xml.j2
dest: /somewhere/answer.xml
owner: root
group: root
mode: '0600'
- name: Install
command: /somewhere/myinstaller --answerfile /somewhere/answer.xml
creates: /somewhereelse/installedprogram
- name: Delete answerfile
file:
path: /somewhere/answer.xml
state: absent
当然,此代码不是幂等的 - 每次运行都会创建和销毁答案文件。
有没有更好的方法来做到这一点?
【问题讨论】:
-
也许 Ansible 保险库是这里的一个选项?
-
@RamanSailopal 谢谢你的建议! Ansible Vault 做了一些不同的事情。它提供了一种安全的方式来存储变量的值。所以保险库可能是密码的来源。但是对于需要将文件存储在目标主机上的情况,它不会做任何事情。