Marionnette vagrant – impossible d’exécuter l’installation du compositeur avec un référentiel privé

Donc, fondamentalement, mon problème est très similaire à cette question:

Vagrant + Puppet: Impossible d’exécuter l’installation du composeur avec un référentiel privé

J’essaie de faire en sorte que le compositeur installe les applications déployées sur une boîte Ubuntu 12.04 utilisant la marionnette.

L’un des packages que j’essaie d’installer dans le cadre de l’exécution du composeur nécessite une clé de déploiement. Dans le cadre de l’exécution de la marionnette, j’ai copié la clé de déploiement (privée, publique et autorisée et known_hosts) dans le répertoire de base des utilisateurs vagrants ( /home/vagrant/.ssh/ ).

C’est là que ma question diffère de la question référencée dans la mesure où la sécurité n’est pas une préoccupation ni la compatibilité de plusieurs systèmes d’exploitation pour cette version, donc je suis heureux de copier les clés sur la boîte et j’ai fait …

J’ai également chargé cette clé dans le profil des utilisateurs, de sorte que si je ssh dans la machine, je puisse exécuter une installation de compositeur et que tout fonctionne correctement. Le problème est que je voudrais que les applications soient installées dans le cadre de la marche de la marionnette et que j’ai du mal à faire fonctionner ceci (tout s’installe jusqu’à ce qu’il atteigne le paquet qui requirejs la clé de déploiement).

Mon composer.json contient actuellement ceci (tentative actuelle de le faire fonctionner):

 "repositories": [ { "type": "vcs", "url": "ssh://[email protected]/account/subrepo.git", "options": { "ssh2": { "username": "git", "pubkey_file": "/home/vagrant/.ssh/key.pub", "privkey_file": "/home/vagrant/.ssh/key" } } } ], 

Ma course de marionnettes tire les repos de git en utilisant vcsrepo (qui vous permet de passer une clé):

 vcsrepo { "/var/www/site.dev": require => [ File["/home/vagrant/.ssh/key"] ], ensure => present, owner => vagrant, provider => git, source => "ssh://[email protected]/account/site.git", revision => 'master', identity => '/home/vagrant/.ssh/key', } 

Cette partie fonctionne correctement, mais lorsque je lance l’installation du composeur, elle meurt lorsqu’elle atteint le package référencé dans composer.json:

 composer::exec { 'site-composer-run': cmd => 'install', cwd => '/var/www/site.dev', require => [ Class['composer'], Vcsrepo["/var/www/site.dev"] ] } 

Je pense que ce dont j’ai besoin est un moyen d’append une clé ssh à un utilisateur sans qu’il soit attaché à un terminal bash, mais je ne suis pas sûr que je sois ouvert à toutes les suggestions à ce stade. Merci d’avance.

Vérifiez que Defaults requiretty est mis en commentaire dans /etc/sudoers