使用Ansible部署django应用程序时的媒体文件夹权限

时间:2015-09-02 07:53:09

标签: django centos file-permissions ansible

我正在使用Ansible进行部署,在任务中我会检查文件夹是否存在,例如日志,资产等,并给予他们755的许可

- name: Ensure source, static, media and logs directories exist
  file: dest={{ item }} mode=755 owner={{ app_user }} group={{ app_group }} state=directory
  with_items:
    - "{{ static_dir }}"
    - "{{ media_dir }}"
    - "{{ logs_dir }}"

我正在使用app_user和apache组运行应用程序,因此我的所有文件和目录都具有app_user:apache权限。

根据上述权限,我无法将文件上传到媒体目录,但是当我向媒体目录上传{/ 1}}权限时,会发生上传但是当媒体获取时,ansible停止工作chown -R g+w media允许。

如何解决此问题,我对媒体文件夹有什么权限?

我的django项目位于apache:apache,媒体位于/var/www/www.example.com/

www.example.com文件夹中有app_user:apache chown。

1 个答案:

答案 0 :(得分:1)

Ansible文件模块需要提供给mode参数的完整八进制数,而不是我们习惯使用chmod命令的速记3位数。

http://docs.ansible.com/ansible/file_module.html所述,"离开前导零可能会产生意外结果。"。

尝试:

file: dest={{ item }} mode=0755 owner={{ app_user }} group={{ app_group }} state=directory

希望有所帮助。