jer*_*ahs 8 git bash automation puppet vagrant
我正在尝试使用vagrant来设置一个开发环境,如果它们尚未被克隆,它会自动克隆两个存储库.
我写了一个简单的脚本来克隆repos,在很多很多方法失败后让puppet直接运行git命令.出于某种原因,我认为这种方法是万无一失的,但事实证明我是一个比我想象的更好的傻瓜.
exec {"load-repos":
command =>"/bin/bash /vagrant/manifests/modules/scripts/clone_repos.sh",
require => Package["git-core"],
}
Run Code Online (Sandbox Code Playgroud)
这是脚本:
#!/bin/bash
if [ ! -d /vagrant/repo-one-dest ]; then
git clone git@example.com:/repo-one.git /vagrant/repo-one-dest
fi
if [ ! -d /vagrant/repo-two-dest ]; then
git clone git@example.com:/repo-two.git /vagrant/repo-two-dest
fi
exit
Run Code Online (Sandbox Code Playgroud)
私钥设置正确.当我登录vm并手动运行时bash clone_repos.sh,一切正常.无论我多少次重新加载流浪汉并让木偶做它的事情,repos永远不会通过exec加载.我错过了什么?
这可能是因为当您vagrant ssh通常以用户身份登录时vagrant(默认情况下,尽管这当然可以通过配置进行修改)。我猜用户vagrant的按键设置正确。
然而,当 Vagrant 运行您的配置程序(在本例中为 Puppet)时,它会执行 操作sudo,因此它以 root 用户身份运行。
我通常建议设置密钥来进行部署的方法是将密钥放在某处,然后使用包装GIT_SSH器来正确克隆它,或者使用 SSH 代理。
| 归档时间: |
|
| 查看次数: |
6618 次 |
| 最近记录: |