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"

Подробнее об этом здесь

Другие вопросы по тегам