Разрешение папки мультимедиа при развертывании приложения django с 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
разрешение.
С указанным выше разрешением я не могу загружать файлы в каталог мультимедиа, но когда даю chown -R g+w media
разрешение на загрузку в каталог мультимедиа происходит, но затем ansible перестает работать, когда медиа получает apache:apache
разрешение.
Как мне решить эту проблему, какое разрешение я даю для папки мультимедиа?
Мой проект Django находится в /var/www/www.example.com/
и СМИ в /var/www/www.example.com/src/media/
В папке www.example.com есть app_user:apache chown.
1 ответ
Файловому модулю Ansible требуется полный восьмеричный номер, предоставленный mode
параметр, а не сокращенная трехзначная версия, которую мы привыкли использовать с chmod
команда.
Как упомянуто на http://docs.ansible.com/ansible/file_module.html, "уход от начального нуля, скорее всего, приведет к неожиданным результатам".
Пытаться:
file: dest={{ item }} mode=0755 owner={{ app_user }} group={{ app_group }} state=directory
Надеюсь, это поможет.