Чтение из файла во время выполнения скрипта во время подготовки Vagrant?

#bash #path #vagrant #vagrantfile

#bash #путь #vagrant #vagrantfile

Вопрос:

Какой путь к файлам выполняется на этапе подготовки vagrant?

В Vagrantfile для размещения файлов в нужных каталогах у меня есть config.vm.provision , который запускает сценарий оболочки (пример: `path:».provision/setup.sh ‘).

setup.sh Файл считывается из другого файла в той же папке для запуска по списку репозиториев git, файлы которых будут размещены на клиентском компьютере.

Скрипт отлично работает при тестировании вне Vagrant, но мне трудно найти, где я должен сказать, что он находится. Вот пример кода, вызывающего проблему:

 filename='./provision/gitrepos'
exec 4<$filename
echo Start
while read -u4 p ; do
  if [ ! -z "$p" ];
  then
    is_website $p
  else
    echo
    echo "This line '#$p' is blank"
    echo
   fi
   done
  

Проблема проявляется здесь: filename='./provision/gitrepos'
При выполнении a vagrant up файл больше не рассматривается как находящийся на хост-компьютере, а где-то в другом месте. Но как мне найти местоположение файла, который находится в том же каталоге, что и setup.sh файл в первую очередь?

Я попробовал `filename=’./ gitrepos’, но, похоже, относительный путь не работает.

Как мне найти расположение этих папок и файлов, чтобы я мог получить к ним доступ на этапе подготовки?

Комментарии:

1. Для ясности, оба файла setup.sh и gitrepos находятся в одном каталоге, но я не могу понять, как получить доступ к файлу, если Vagrant запускает скрипт.

Ответ №1:

Сценарий инициализации выполняется из /tmp папки — если вы подключитесь к своей виртуальной машине по ssh и проверите временную папку, вы увидите что-то похожее vagrant-shell на содержимое скрипта. Однако не все файлы из вашего каталога помещаются в /tmp папку.

Если ваш файл gitrepos находится в каталоге вашего проекта, он по умолчанию является общим для /vagrant каталога, поэтому вы можете читать оттуда

Если это не так, вам нужно создать определенную папку sync_folder, чтобы вы могли прочитать файл из виртуальной машины