vagrant を使用して、まだ複製されていない場合に 2 つのリポジトリを自動的に複製する開発環境をセットアップしようとしています。
パペットに 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 に任せても、exec を介してリポジトリが読み込まれることはありません。私は何が欠けていますか?