2015-08-12 3 views
2

У меня проблема, связанная с запуском ящика на OS X с Vagrantfile/обеспечением, ранее успешно протестированным в Windows. Ящик имеет особенность запуска Ansible полностью на виртуальной машине, но я думаю, что проблема возникает раньше.Vagrant разрешение на предоставление.sh отрицается на osx

# -*- mode: ruby -*- 
# vi: set ft=ruby : 

Vagrant.configure(2) do |config| 

    config.vm.box = "ubuntu/trusty64" 

    config.vm.hostname = "rubicon.vm" 

    config.vm.provider :virtualbox do |vb| 
     vb.customize ["modifyvm", :id, "--cpus", "2" ] 
     vb.customize ["setextradata", :id, "VBoxInternal2/SharedFoldersEnableSymlinksCreate/vagrant", "1"] 
    end 

    config.vm.network "forwarded_port", guest: 8888, host: 8888 
    config.vm.network "private_network", ip: "192.168.33.10" 

    config.vm.synced_folder ".", "/vagrant" 

    config.vm.provision :shell, 
    :keep_color => true, 
    :inline => "export PYTHONUNBUFFERED=1 && export ANSIBLE_FORCE_COLOR=1 && cd /vagrant && ./provision.sh" 
end 

Я получаю сообщение об ошибке на этапе предоставления:

/tmp/vagrant-shell: line 1: ./provision.sh: Permission denied 

Чтобы проверить, что (1) provision.sh был найден и (2) пользователь должен быть корень и иметь все разрешения, я изменил предоставление линия с:

:inline => "cd /vagrant && ls -al && echo $USER && ./provision.sh" 

вывод был:

==> default: drwxr-xr-x 1 vagrant vagrant 204 Aug 12 10:06 . 
==> default: drwxr-xr-x 23 root root 4096 Aug 12 10:12 .. 
==> default: drwxr-xr-x 1 vagrant vagrant 136 Aug 11 14:28 ansible 
==> default: -rw-r--r-- 1 vagrant vagrant 767 Aug 11 14:35 provision.sh 
==> default: drwxr-xr-x 1 vagrant vagrant 102 Aug 11 14:30 .vagrant 
==> default: -rwxr-xr-x 1 vagrant vagrant 785 Aug 12 10:06 Vagrantfile 
==> default: root 
==> default: /tmp/vagrant-shell: line 1: ./provision.sh: Permission denied 

Так что ничего удивительного нет.

ответ

6

Вам необходимо предоставить разрешения на выполнение provision.sh

chmod +x provision.sh 
+0

выглядит, как он работает. Большое спасибо! Я думаю, это было больше недоразумений в файловой системе Linux, чем сам бродяга. Разве корневой пользователь не может выполнить что-либо и все по умолчанию? – xav

+0

Файл должен иметь разрешения на выполнение для всех, кто его выполнит. Вы можете использовать source somefile.sh, если у файла нет прав выполнения, но это больше печатает. – user2182349

Смежные вопросы