如何使用 Chef 将应用程序传输到节点进行部署?
How to transfer application for deployment to the node with Chef?
我想从工作站将最近构建的应用程序部署到 Chef 节点上。我可以按如下方式执行我的厨师食谱:
knife ssh {{node_address}} 'sudo chef-client' --manual-list --ssh-user {{user}} --ssh-password '{{password}}'
但是传输我的部署应用程序(压缩文件,超过 300 mb)的最佳方式是什么?
通常,您尝试部署的应用程序应托管在节点可访问的某个位置。您希望它位于一致且可靠的某个地方,因为每次您 运行 厨师时,它都会想要确保您正在部署的资源处于所需状态。根据应用程序的类型,有多种方法可以实现这一点。示例包括将其放入 git 存储库、包管理器 (apt/yum)、工件服务器,甚至像 http 服务器或 amazon s3 上的 zip 一样简单。
git 的常用方法是使用内置于 chef
中的 deploy resource
deploy 'private_repo' do
repo 'git@github.com:acctname/private-repo.git'
deploy_to '/tmp/private_code'
action :deploy
end
另一种常见方法是 ark cookbook which can easily manage tar/zipped resources or even the artifact cookbook,它可以从 nexus 或 s3 部署工件。
我想从工作站将最近构建的应用程序部署到 Chef 节点上。我可以按如下方式执行我的厨师食谱:
knife ssh {{node_address}} 'sudo chef-client' --manual-list --ssh-user {{user}} --ssh-password '{{password}}'
但是传输我的部署应用程序(压缩文件,超过 300 mb)的最佳方式是什么?
通常,您尝试部署的应用程序应托管在节点可访问的某个位置。您希望它位于一致且可靠的某个地方,因为每次您 运行 厨师时,它都会想要确保您正在部署的资源处于所需状态。根据应用程序的类型,有多种方法可以实现这一点。示例包括将其放入 git 存储库、包管理器 (apt/yum)、工件服务器,甚至像 http 服务器或 amazon s3 上的 zip 一样简单。
git 的常用方法是使用内置于 chef
中的 deploy resourcedeploy 'private_repo' do
repo 'git@github.com:acctname/private-repo.git'
deploy_to '/tmp/private_code'
action :deploy
end
另一种常见方法是 ark cookbook which can easily manage tar/zipped resources or even the artifact cookbook,它可以从 nexus 或 s3 部署工件。