所以基本上我的问题与这个问题非常相似:
Vagrant + Puppet: Unable to run composer install with private repository
我正在尝试让作曲家使用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终端的方法但是我不太确定所以我现在对所有建议都持开放态度。提前谢谢。
答案 0 :(得分:-2)
确认Defaults requiretty
/etc/sudoers