Daha önce klonlanmamışlarsa iki depoyu otomatik olarak klonlayan bir dev ortam oluşturmak için vagrant kullanmaya çalışıyorum.Kukla yürütme komutu kabukta çalışır, ancak kukla yoluyla değil
Kuklaları doğrudan git komutunu çalıştırmak için birçok yolla başarısız olduktan sonra, reposları klonlamak için basit bir komut dosyası yazdım. Bazı sebeplerden dolayı bu yöntemin kusursuz olacağını düşündüm, ama düşündüğümden daha iyi bir aptalım.
#!/bin/bash
if [ ! -d /vagrant/repo-one-dest ]; then
git clone [email protected]:/repo-one.git /vagrant/repo-one-dest
fi
if [ ! -d /vagrant/repo-two-dest ]; then
git clone [email protected]:/repo-two.git /vagrant/repo-two-dest
fi
exit
özel tuşlar uygun şekilde ayarlandığında:
exec {"load-repos":
command =>"/bin/bash /vagrant/manifests/modules/scripts/clone_repos.sh",
require => Package["git-core"],
}
İşte senaryo. Vm'ye giriş yaptığımda ve bash clone_repos.sh
'u manuel olarak çalıştırdığımda her şey çalışıyor. Ne kadar çok kez serseriyi yeniden yüklerim ve kukla kendi işini yapmasına izin vermezse, reposlar asla exec yoluyla yüklenmez. Neyi kaçırıyorum?
İlk boşlukta boşluk eksik ['test. – ormaaj
Bunu işaretlediğiniz için teşekkürler. Unfortunatley, gerçek dizini 'repo-one-dest' ile değiştirdiğimde yazıya girdiğim bir eser. Komut komut satırından çalıştırıldığında betik doğru çalışır ve boşluğa sahiptir. Sözdizimi hatasını kaldırmak için gönderiyi düzenledim. – jeremiahs
Exec bloğunuza 'logoutput => true,' eklenmesi hata ayıklamaya yardımcı olabilecek daha fazla çıktıya neden olabilir Ayrıca bir dosya eklemek isteyebilirsiniz ["/ vagrant/manifests/modules/scripts/clone_repos.sh" Kukla, kukla VM'nize ittirmeden önce betiği yürütmeye çalışıyor olabilir. – pwan