所以基本上我的问题与这个问题非常相似:
Vagrant + Puppet: Unable to run composer install with private repository
我试图让作曲家使用puppet在Ubuntu 12.04盒子上安装已部署的应用程序.
我尝试作为composer运行的一部分安装的其中一个软件包需要部署密钥.作为puppet运行的一部分,我已将部署密钥(私有,公共和授权以及known_hosts)复制到vagrant用户主目录(/home/vagrant/.ssh/)
这是我的问题与引用的问题的不同之处在于安全性不是问题,也不是这个版本的多个操作系统兼容性所以我很乐意将密钥复制到框中,我已经完成了……
我还在用户.profile中加载了这个密钥,这样如果我进入机器,我可以运行一个作曲家安装,一切运行都很好.问题是我希望将应用程序作为puppet运行的一部分进行安装,并且我正在努力使其工作(一切都安装,直到它到达需要部署密钥的一个包).
我的composer.json目前包含这个(当前尝试让它工作):
"repositories": [ { "type": "vcs","url": "ssh://git@bitbucket.org/account/subrepo.git","options": { "ssh2": { "username": "git","pubkey_file": "/home/vagrant/.ssh/key.pub","privkey_file": "/home/vagrant/.ssh/key" } } } ],
我的木偶运行使用vcsrepo(它允许你传入一个键)从git中拉出回购:
vcsrepo { "/var/www/site.dev": require => [ File["/home/vagrant/.ssh/key"] ],ensure => present,owner => vagrant,provider => git,source => "ssh://git@bitbucket.org/account/site.git",revision => 'master',identity => '/home/vagrant/.ssh/key',}
这部分工作正常,但是当我按照以下方式运行composer install时,它会在它击中composer.json中引用的包时死掉:
composer::exec { 'site-composer-run': cmd => 'install',cwd => '/var/www/site.dev',require => [ Class['composer'],Vcsrepo["/var/www/site.dev"] ] }
我瘦我所需要的是一种为用户添加ssh-key而不将它们连接到bash终端的方法,但我不太确定所以我对这一点上的所有建议都持开放态度.提前致谢.
验证在/ etc / sudoers中是否注释掉Defaults requiretty