Chef infra 如何使用Chef将部署应用程序传输到节点?

Chef infra 如何使用Chef将部署应用程序传输到节点?,chef-infra,chef-recipe,Chef Infra,Chef Recipe,我想从工作站在Chef节点上部署最近构建的应用程序。我可以按照以下方式执行我的厨师烹饪手册: knife ssh {{node_address}} 'sudo chef-client' --manual-list --ssh-user {{user}} --ssh-password '{{password}}' 但是,传输我的应用程序以进行部署(压缩文件,超过300 mb)的最佳方式是什么?通常,您尝试部署的应用程序应该托管在可以从节点访问的地方。您希望它成为一致和可靠的地方,因为每次运行ch

我想从工作站在Chef节点上部署最近构建的应用程序。我可以按照以下方式执行我的厨师烹饪手册:

knife ssh {{node_address}} 'sudo chef-client' --manual-list --ssh-user {{user}} --ssh-password '{{password}}'

但是,传输我的应用程序以进行部署(压缩文件,超过300 mb)的最佳方式是什么?

通常,您尝试部署的应用程序应该托管在可以从节点访问的地方。您希望它成为一致和可靠的地方,因为每次运行chef时,它都希望确保您正在部署的资源处于所需状态。根据应用程序的类型,有许多方法可以实现这一点。示例包括将其放在git存储库、包管理器(apt/yum)、工件服务器中,甚至放在http服务器或AmazonS3上的zip中

git的一种常见方法是使用内置的chef

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

另一种常见的方法是,它可以轻松地管理tar/zipped资源,甚至可以部署来自nexus或s3的工件。

这有帮助吗@乔丹不确定。bash资源为节点上的单个配置项定义所需的状态,但不包括工作站上的该文件。你能澄清一下这有什么帮助吗?该页的顶部答案描述了如何将文件从工作站复制到节点;我链接到的答案描述了如何解压它。对不起,如果不清楚的话。