【问题标题】:Ansible copy doesn't set file mode correctlyAnsible 副本未正确设置文件模式
【发布时间】:2018-04-04 03:21:48
【问题描述】:

我有一个 Ansible 脚本,其中包括将一些文件复制到服务器:

  - name: copy vhost basic files to folder
    copy:
      src: "{{ item }}"
      dest: /var/www/vhosts/mmpew/
      mode: 664
      owner: "{{ deploy_user }}"
      group: "{{ deploy_user }}"
    with_fileglob:
      - ../files/vhost/*

在我的 Macbook 上本地文件的权限为 -rw-r--r--,但即使我将 ansible 脚本中的模式设置为 664,服务器上生成的文件也具有权限 -r-----rwt

为什么哦,为什么服务器上的结果文件与 ansible 脚本中设置的模式或复制它们的本地文件系统的原始权限不匹配?

我什至尝试使用 Ansible 文件模块正确设置模式:

  - name: Make sure the files I just uploaded are chmodded correctly
    file:
      path: /var/www/vhosts/mmpew/{{ item }}
      mode: 644
    with_items:
      - the.txt
      - files.php
      - here.py

但即使我没有从 Ansible 得到任何错误,文件模式也没有正确设置。

谁能告诉我这里有什么问题?欢迎所有提示!

【问题讨论】:

    标签: file permissions ansible


    【解决方案1】:

    定义模式有两种方法

    第一:

    mode: 0644
    

    秒:

    mode: '644'
    

    【讨论】:

      【解决方案2】:

      您可以象征性地指定模式:

      mode: u=rw,g=r,o=r
      

      这更具可读性且不易出错。根据the documentation,Ansible >= 1.8 支持符号模式。

      【讨论】:

        【解决方案3】:

        使用mode: 0644

        0 是必需的。

        【讨论】:

        • 谢谢,成功了。一个问题;零有什么用?
        • 表示八进制数。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-11-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多