我正在编写 ansible-playbook,它应该有助于为持续交付管道生成构建代理。除其他问题外,我需要在这样的代理上安装一个 oracle 客户端。我想做类似的事情

- name: "Provide response file"
  copy: src=/custom.rsp dest=/opt/oracle

在 custom.rsp 文件中,我有一些要替换的变量。通常,可以使用单独的 shell 命令来完成,如下所示:
- name: "Substitute Vars"
  shell: "sed 's|<PARAMETER>|<VALUE>|g' -i /opt/oracle/custom.rsp"

不过我不喜欢。应该有一种更方便的方法来做到这一点。有人给我提示吗?

最佳答案

您想使用 template 而不是复制静态文件。
此外,当使用副本或模板模块时,dest 参数是完整路径和文件名,而不仅仅是路径。因此,如果您想在目录/opt/oracle 中获得 custom.rsp 的副本,那么您需要执行以下操作:

- name: "Provide response file"
  template: src=/custom.rsp dest=/opt/oracle/custom.rsp

关于使用替换的自定义变量将文件复制到 ansible 主机,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33528212/

10-12 00:41