厨师和 git 结帐
Posted
技术标签:
【中文标题】厨师和 git 结帐【英文标题】:Chef and git checkout 【发布时间】:2016-06-14 11:20:28 【问题描述】:我目前正在使用 chef 在 opsworks 上部署服务器,然后使用“部署”配方,从私有存储库部署应用程序。
一切都按预期工作,因为我的 repo 被正确克隆。虽然它克隆了我的目录,但我最终得到了许多子目录,例如
当前 发布我想做的只是让主分支不在子文件夹中,所以我本质上是从 git 获取我的网络应用程序的根目录。
我目前的厨师代码看起来像
deploy '/var/www/html' do
repo 'myrepo.git'
git_ssh_wrapper "/git-ssh-wrapper" # For private Git repos
deploy_to '/var/www/html'
symlink_before_migrate.clear
create_dirs_before_symlink.clear
purge_before_symlink.clear
symlinks.clear
action :deploy
end
我不确定上面的“操作”是否不正确,或者我应该使用“deploy_revision”而不是在此处部署?
谢谢
【问题讨论】:
你是怎么解决这个问题的?它是您需要的稀疏结帐和浅层克隆吗?看起来 chef 的 git 资源并没有提供我们解决该案例所需的一切。 【参考方案1】:使用git
资源而不是deploy
资源。
【讨论】:
抱歉延迟接受。我对 chef 不太熟悉,所以必须熟悉 git 资源上的选项。也许您可以为其他查看此问题的人扩展您的答案(例如 git_ssh_wrapper 应该只是 ssh_wrapper 并且 'action :deploy' 不存在等,因为我只是通过反复试验发现了其中的一些(显然没有仔细阅读文档!) 您可以在 Chef 文档 (docs.chef.io/resource_git.html) 中找到所有内容,包括顶部的示例。 正如我所说,我找到了文档,但只是认为扩展您的答案可能会更好,而不仅仅是为潜在的未来观众提供链接,因为显然 url 并不总是永久的,然后一切都会在一个地方,但没关系。 复制粘贴 Chef 文档似乎是在浪费大家的时间。我的答案很可能会过时,而不是 Chef 文档将不复存在。以上是关于厨师和 git 结帐的主要内容,如果未能解决你的问题,请参考以下文章