Команда puppet exec запускается в оболочке, но не через puppet

Я пытаюсь использовать vagrant для настройки среды разработки, которая автоматически клонирует два репозитория, если они еще не были клонированы.

Я написал простой скрипт для клонирования репозиториев после того, как многие, многие способы заставить puppet запускать команду git напрямую потерпели неудачу. По какой-то причине я думал, что этот метод будет надежным, но оказалось, что я лучший дурак, чем я думал.

exec {"load-repos":
    command =>"/bin/bash /vagrant/manifests/modules/scripts/clone_repos.sh",
    require => Package["git-core"],
  }

Вот скрипт:

#!/bin/bash
if [ ! -d /vagrant/repo-one-dest ]; then
  git clone git@example.com:/repo-one.git /vagrant/repo-one-dest
fi

if [ ! -d /vagrant/repo-two-dest ]; then
  git clone git@example.com:/repo-two.git /vagrant/repo-two-dest
fi

exit

Закрытые ключи настроены правильно. Когда я вхожу в виртуальную машину и вручную запускаю bash clone_repos.sh, все работает. Независимо от того, сколько раз я перезагружаю vagrant и позволяю puppet делать свое дело, репозитории никогда не загружаются через exec. Что я упускаю?

8
задан jeremiahs 23 June 2012 в 22:14
поделиться