我正在尝试使用 vagrant 来设置一个开发环境,如果它们还没有被克隆,它会自动克隆两个存储库。
我写了一个简单的脚本来克隆 repos,在很多很多方法都失败后让 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
私钥设置正确。当我登录 vm 并手动运行bash clone_repos.sh
时,一切正常。无论我重新加载 vagrant 并让 puppet 执行多少次,repos 都不会通过 exec 加载。我错过了什么?