所以基本上我的问题与这个问题非常相似:
Vagrant + Puppet:无法使用私有存储库运行composer install
我试图让作曲家使用puppet在Ubuntu 12.04盒子上安装已部署的应用程序.
我尝试在作曲家运行中安装的其中一个软件包需要部署密钥.作为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终端的方法,但我不太确定所以我对这一点上的所有建议都持开放态度.提前致谢.