【问题标题】:Chef tutorial doesn't need apache2 cookbook?Chef 教程不需要 apache2 食谱吗?
【发布时间】:2024-01-01 00:01:01
【问题描述】:

Chef legacy Apache tutorial 中没有提到对 apache2 食谱的任何依赖,但本教程似乎可以在没有它的情况下安装 Apache。

在学习 Chef 时,我发现这很令人困惑,因为当我去创建我的第一个食谱时,我很惊讶不得不处理下载/上传食谱依赖项。

无需下载/上传apache2 食谱甚至声明对apache2 食谱的依赖,本教程如何工作?似乎根本不应该工作。

【问题讨论】:

    标签: dependencies chef-infra cookbook


    【解决方案1】:

    这里不依赖于 apache2 食谱。

    本教程将引导读者创建具有默认配方的 apache-tutorial-1 食谱。教程中的配方内容是:

    package 'apache2' do
      action :install
    end
    
    service 'apache2' do
      action [ :enable, :start ]
    end
    
    cookbook_file '/var/www/index.html' do
      source 'index.html'
      mode '0644'
    end
    

    apache2 包被安装并且 Apache HTTPD 工作,因为这个秘籍就是这样做的。为此,您不需要社区 apache2 食谱的全部内容。您也不需要在等式中加入 Berkshelf 来完成这项工作。

    这些教程旨在教授基础知识,以便用户学习 Chef 的基础知识。学习具有自己生态系统的其他工具超出了该目的的范围。如果您要发送电子邮件,您将不会学习如何设置 postfix 和 spamassassin 和 procmail 等等。

    【讨论】:

    • 啊哈!通过教程,我不清楚package 方法只是通过特定于操作系统的包管理器(在我的情况下为apt)安装一个包;我以为它以某种方式指的是apache2 社区食谱。感谢您解决这个问题。
    • 是的,食谱是以它所管理的东西命名的,在本例中是 'apache2',因为这看起来很直观——对于一定数量的直观(并不总是如此,但至少在这里它仍然适用 :) )
    【解决方案2】:

    本教程实现了一个 Apache 食谱作为如何编写食谱的简单示例。把它想象成一个“hello world”。

    使用社区食谱不在语言教程的范围内。超市的食谱不是“核心厨师”,不需要使用厨师。

    为了进行一些比较,可以使用 Java 而不使用 Maven。可以在不依赖 Rubygems 上找到的任何东西的情况下使用 Ruby。可以在不使用 PyPI 的模块的情况下使用 Python。

    -s

    【讨论】:

      【解决方案3】:

      如果我正确理解您的问题,那么您正在搜索的缺失部分是 Berkshelf

      【讨论】: