代码之家  ›  专栏  ›  技术社区  ›  Mohd Abdul Mujib

如果不存在,则ansible“ini_file”模块不创建文件

  •  0
  • Mohd Abdul Mujib  · 技术社区  · 6 年前

    好的,所以我需要更新配置文件中的标志 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 回复  |  直到 6 年前
        1
  •  0
  •   Mohd Abdul Mujib    6 年前

    这是一个 documented bug 讨论将于2018年6月29日开始。

    因此,作为暂时的替代方法,您可以复制一个具有相同文件名的虚拟文件(如果不存在),然后继续更新它,或者继续使用其他文件修改模块,如 lineinfile .