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

时间:2015-07-07 17:45:38

标签: chef chef-recipe

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

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

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

1 个答案:

答案 0 :(得分:1)

通常,您尝试部署的应用程序应托管在可从节点访问的某个位置。您希望它是一个一致且可靠的地方,因为每次您运行厨师时,它都希望确保您正在部署的资源是所需的状态。根据应用程序的类型,有很多方法可以实现。示例包括将其放在git存储库,包管理器(apt / yum),工件服务器中,甚至像http服务器或亚马逊s3上的zip一样简单。

git的一个常见方法是使用内置于厨师的deploy resource

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

另一种常见方法是ark cookbook,它可以轻松管理tar / zipped资源,甚至可以从nexus或s3部署工件的artifact cookbook