如何使用厨师食谱从git签出文件夹

时间:2016-06-01 20:41:32

标签: git chef directory aws-opsworks

我正在尝试设置与aws-opworks上的Git,Chef持续集成。

结帐git中的特定文件夹,说node"node_path"。我可以使用destination:标记作为目标目录,但我无法找到如何在git中指定源目录

node_path = "/my/home/MyPrj/node"
git node_path do
    repository "https://something.com/MyCo/MyPrj.git"
    reference "prod"
    action :sync
    destination : node_path
end

此处,目标文件夹node是符号链接。我可以git签出一个文件夹,识别修改后的代码片段,然后复制新文件。但我希望action :sync自动完成此操作 - 如何完成?

我使用的参考文献是:

2 个答案:

答案 0 :(得分:1)

您将使用git资源和link资源:

git '/srv/MyPrj' do
  repository 'https://something.com/MyCo/MyPrj.git'
  branch 'prod'
end

link '/my/home/MyPrj/node' do
  to '/srv/MyPrj/node'
end

答案 1 :(得分:0)

如果您尝试从git部署代码,那么您应该查看deploy resource,其语法如下:

reverse

以下是我如何使用它从我的仓库部署代码

deploy 'private_repo' do
  repo 'git@github.com:acctname/private-repo.git'
  user 'ubuntu'
  deploy_to '/tmp/private_code'
end

下面, 我们正在使用Opsworks提供的部署食谱。所以prepare_git_checkouts来自Opsworks。

现在,

  1. 将此配方设置为在deploy lifecyle事件上执行。
  2. 每次回购时情况发生变化。你应该在opsworks&应该没问题。
  3. 希望有所帮助