chmod не может изменить разрешения в Vagrant VM
Я пытаюсь настроить среду Vagrant для размещения Snowplow ( https://github.com/snowplow). Когда я запускаю vagrant из оболочки Cygwin
$vagrant up && vagrant ssh
Я попадаю в гостевой образ Ubuntu (12.04), и когда я пытаюсь установить java8 в эту среду с использованием ansible, я получаю следующее сообщение:
vagrant @ точное64:~$ ansible-playbook /vagrant/ansible-playbooks/java8-gradle.yml --inventory-file=/vagrant/home/ansible/ansible_hosts --connection=local ОШИБКА: файл / vagrant / home / ansible / ansible_hosts помечен как исполняемый, но не выполнен правильно. Если это не должен быть исполняемый скрипт, исправьте это с помощью
chmod -x /vagrant/home/ansible/ansible_hosts
,
Файл действительно 777:
-rwxrwxrwx 1 бродячий бродяга 24 марта 3 19:03 ansible_hosts*
но этот же файл синхронизируется с хостом (Windows), и cygwin показывает файл как 644:
-rw-r - r-- 1 rcoe Пользователи домена 24 марта 3 14:03 ansible_hosts
Известна ли проблема, возникающая в безголовой среде (VirtualBox) Vagrant, которая не позволяет устанавливать разрешения для файлов, синхронизируемых с хостом?
Благодарю.
1 ответ
Это известный недостаток, но, как сообщается, не ошибка: изменение разрешений для общих папок из виртуальной машины
Существует хорошее руководство о том, как настроить синхронизированную папку в vagrant, чтобы она соответствовала вашим потребностям - если вы перейдете по этой ссылке, она покажет следующий фрагмент
config.vm.synced_folder "./", "/var/sites/dev.query-auth", id: "vagrant-root",
owner: "vagrant",
group: "www-data",
mount_options: ["dmode=775,fmode=664"]
это показывает, как настроить права доступа к синхронизируемой папке.
В качестве альтернативы вы также можете использовать другой метод синхронизации папки, например, rsync (имея в виду, каковы компромиссы)
config.vm.synced_folder "/Users/ryansechrest/Projects/Sites", "/var/www/domains",
type: "rsync"
Подробнее об этом здесь