【问题标题】:In Chef, Best way to deploy a single website from a package在 Chef 中,从包中部署单个网站的最佳方式
【发布时间】:2015-12-24 00:52:17
【问题描述】:

我有一个包含多个网站和窗口服务的包,我使用 Knife winrm 从 Team City 自动部署它们。

但我想找到一种定期部署单个网站(配方)的最佳方式,这样配方的其余部分就不会起到节省时间的作用。

您愿意分享您的想法吗?

提前谢谢你。

【问题讨论】:

    标签: chef-infra chef-recipe knife winrm


    【解决方案1】:

    您可以通过--override-runlist (-o) 命令行选项直接(-ish)运行单个配方。不过,通常不建议这样做,因为 Chef 被设计为一个融合系统,这意味着它可以对所有事物的状态进行建模。更好的方法是在请求的包版本中使用节点属性(或类似属性),并且仅在本地版本与请求的版本不匹配时安装它。如果正确实施,这将提供幂等性和收敛性。

    【讨论】:

    • 感谢您的回复@coderanger。我听说 chef-client -o 不保留 node.save 可能不会保留状态。我听说的另一种方法是使用数据包使用if语句来提供我熟悉的打开或关闭部署的值。
    • 缺少 node.save 只是覆盖运行列表的众多足枪级别问题之一。当您了解所有权衡时,它们可能非常有用,但现在可能要避开。至于构建应用程序部署配方的更一般的问题,请参阅github.com/poise/application_examples 了解我的 Rails、Django 和 Express 示例。
    猜你喜欢
    • 2011-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-02
    • 2020-08-15
    • 2015-07-18
    • 2023-04-08
    相关资源
    最近更新 更多