Der Puppet-Exec-Befehl wird in der Shell ausgeführt, aber nicht über die Marionette

8

Ich versuche, vagrant zu verwenden, um eine Entwicklungsumgebung einzurichten, die automatisch zwei Repositorys klont, wenn sie nicht bereits geklont wurden.

Ich habe ein einfaches Skript geschrieben, um die Repos zu klonen, nachdem ich auf viele, viele Arten versagt habe, damit die Puppe den Befehl git direkt ausführen kann. Aus irgendeinem Grund dachte ich, dass diese Methode narrensicher wäre, aber es stellt sich heraus, dass ich ein besserer Idiot bin als ich dachte.

%Vor%

Hier ist das Skript:

%Vor%

Die privaten Schlüssel sind richtig eingerichtet. Wenn ich mich bei der VM anmelde und bash clone_repos.sh manuell ausführe, funktioniert alles. Egal, wie oft ich den Landstreicher neu lade und die Puppe ihre Sache machen lasse, die Repos werden niemals über die Exekutive geladen. Was vermisse ich?

    
jeremiahs 23.06.2012, 22:00
quelle

1 Antwort

4

Das liegt wahrscheinlich daran, dass Sie sich als vagrant ssh normalerweise als vagrant Benutzer anmelden (standardmäßig, obwohl dies sicherlich über die Konfiguration geändert werden kann). Der vagrant Benutzer, den ich vermute, hat die Schlüssel richtig eingerichtet.

Wenn Vagrant Ihren Provisioner (in diesem Fall Puppet) ausführt, wird jedoch sudo ausgeführt, sodass er als root-Benutzer ausgeführt wird.

Ich rate generell dazu, die Schlüssel für die Bereitstellung einzurichten, indem Sie die Schlüssel irgendwo platzieren und dann einen GIT_SSH -Wrapper verwenden, um ihn richtig zu klonen oder SSH-Agenten zu verwenden.

    
Mitchell 26.07.2012, 17:52
quelle

Tags und Links