Ansible'ini_file'模块如果不存在则不创建文件

时间:2018-05-23 18:50:38

标签: ansible

好的,所以我需要用一个新值更新配置文件etc/letsencrypt/dnscloudflare.ini中的一个标志,如果它还不存在,还要创建上述文件。

所以我用ini_file module编写了这个任务,如下所示,

- name: Update the "letsencrypt cloudflare plugin"'s config
  ini_file:
    path: /etc/letsencrypt/dnscloudflare.ini
    section: null
    option: "dns_cloudflare_api_key"
    value: "my-key-here"
    mode: 0600
    backup: yes
    create: yes
  become: yes
  become_user: root

现在,默认情况下该文件不存在,因此应该在此过程中创建它,但无论我做什么,文件都不会被创建

注意:我发现this bug report,目前尚未合并的解决方案。

因此,作为一种解决方法,我现在手动创建一个文件,然后在下一个任务中更新该文件。

所以

  1. 为什么会这样,就像我错过了什么?
  2. 目前有没有任何已知的解决方案?

1 个答案:

答案 0 :(得分:0)

这是documented bug,讨论截止至2018年6月29日。

作为一种替代方案,您可以复制一个具有相同文件名的虚拟文件(如果不存在),然后继续进行更新,或者可以继续使用其他文件修改模块,例如lineinfile