【问题标题】:Is chef-solo installing ntp with no recipe?chef-solo 是在没有配方的情况下安装 ntp 吗?
【发布时间】:2012-06-07 18:10:05
【问题描述】:

我是 非常 新厨师,并且有一个新的 ubuntu 12 虚拟机,我正在玩 chef-solo。按照一些关于该主题的博客教程,我决定通过我的 vm 上的配方来修补安装 ntp 服务。在经历了让 vm 安装 ruby​​、rubygems 和最后的 chef 的引导过程之后,最初的 ntp 运行似乎运行正常。在运行之前,pgrep ntpd 将返回空白,在运行之后,相同的命令将返回一个进程 ID。但是在仔细检查 /etc/ntp.conf 文件后,我意识到它没有使用我的食谱中定义的该文件的模板版本。在进一步调查之后,我开始测试我的 ntp 配方在 chef-solo 运行中根本没有被引用的理论。我将我的cookbooks/ntp 目录重命名为cookbooks/ntp_foo。然而,引用 this 的基本配方对此非常满意,并继续安装 ntp 服务。是否有某些服务在“核心”厨师安装中定义了食谱?这是我的设置布局:

solo.rb

root = File.absolute_path(File.dirname(__FILE__))

data_bag_path root + '/data-bags'
file_cache_path root

cookbook_path [root + '/cookbooks', root + '/site-cookbooks']

solo.json

"run_list": [
    "recipe[base]"
]

site-cookbooks/recipes/base/default.rb

package 'ntp'

cookbooks/ntp 配方不是我自己创建的,但似乎是有效的,只是没有被调用。

编辑

添加日志:

[Sat, 02 Jun 2012 22:25:13 -0700] INFO: *** Chef 0.10.10 ***
[Sat, 02 Jun 2012 22:25:14 -0700] DEBUG: Building node object for mike-VirtualBox
[Sat, 02 Jun 2012 22:25:14 -0700] DEBUG: Extracting run list from JSON attributes provided on command line
[Sat, 02 Jun 2012 22:25:14 -0700] INFO: Setting the run_list to ["recipe[base]"] from JSON
[Sat, 02 Jun 2012 22:25:14 -0700] DEBUG: Applying attributes from json file
[Sat, 02 Jun 2012 22:25:14 -0700] DEBUG: Platform is ubuntu version 12.04
[Sat, 02 Jun 2012 22:25:14 -0700] INFO: Run List is [recipe[base]]
[Sat, 02 Jun 2012 22:25:14 -0700] INFO: Run List expands to [base]
[Sat, 02 Jun 2012 22:25:14 -0700] INFO: Starting Chef Run for mike-VirtualBox
[Sat, 02 Jun 2012 22:25:14 -0700] INFO: Running start handlers
[Sat, 02 Jun 2012 22:25:14 -0700] INFO: Start handlers complete.
[Sat, 02 Jun 2012 22:25:14 -0700] DEBUG: No chefignore file found at /tmp/chef/site-cookbooks/chefignore no files will be ignored
[Sat, 02 Jun 2012 22:25:14 -0700] DEBUG: Loading Recipe base via include_recipe
[Sat, 02 Jun 2012 22:25:14 -0700] DEBUG: Found recipe default in cookbook base
[Sat, 02 Jun 2012 22:25:14 -0700] DEBUG: Platform ubuntu not found, using all defaults. (Unsupported platform?)
[Sat, 02 Jun 2012 22:25:14 -0700] DEBUG: Loading from cookbook_path: /tmp/chef/site-cookbooks
[Sat, 02 Jun 2012 22:25:14 -0700] DEBUG: Converging node mike-VirtualBox
[Sat, 02 Jun 2012 22:25:14 -0700] DEBUG: Processing package[ntp] on mike-VirtualBox
[Sat, 02 Jun 2012 22:25:14 -0700] INFO: Processing package[ntp] action install (base::default line 3)
[Sat, 02 Jun 2012 22:25:14 -0700] DEBUG: package[ntp] checking package status for ntp
[Sat, 02 Jun 2012 22:25:14 -0700] DEBUG: package[ntp] current version is nil
[Sat, 02 Jun 2012 22:25:14 -0700] DEBUG: package[ntp] candidate version is 1:4.2.6.p3+dfsg-1ubuntu3
[Sat, 02 Jun 2012 22:25:14 -0700] DEBUG: Executing apt-get -q -y install ntp=1:4.2.6.p3+dfsg-1ubuntu3
[Sat, 02 Jun 2012 22:25:21 -0700] DEBUG: ---- Begin output of apt-get -q -y install ntp=1:4.2.6.p3+dfsg-1ubuntu3 ----
[Sat, 02 Jun 2012 22:25:21 -0700] DEBUG: STDOUT: Reading package lists...
Building dependency tree...
Reading state information...
Suggested packages:
    ntp-doc
The following NEW packages will be installed:
    ntp
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 0 B/570 kB of archives.
After this operation, 1,368 kB of additional disk space will be used.
Selecting previously unselected package ntp.
(Reading database ... 171196 files and directories currently installed.)
Unpacking ntp (from .../ntp_1%3a4.2.6.p3+dfsg-1ubuntu3_i386.deb) ...
Processing triggers for man-db ...
Processing triggers for ureadahead ...
Setting up ntp (1:4.2.6.p3+dfsg-1ubuntu3) ...
* Starting NTP server ntpd
...done.

对可能发生的事情有任何想法吗?谢谢!

【问题讨论】:

    标签: chef-infra


    【解决方案1】:

    所以真的没有问题,只是我从根本上误解了run_listsrecipes的关系。我的site-cookbooks 目录中的基本配方是配方,一个非常简单的配方,但仍然是一个:

    package 'ntp'
    

    因为我在cookbooks 目录中看到了一个单独的ntp 配方,这让我产生了误解,即上面的行不知何故需要引用cookbooks 中的配方。不是这种情况。所以我的run_list 改为:

    "run_list": [
        "recipe[base]"
    ]
    

    到:

    "run_list": [
        "recipe[ntp]"
    ]
    

    这调用了cookbooks\ntp 配方,一切在我的虚拟机上看起来都符合预期。感谢您对此提出意见,希望这对厨师新手有所帮助。

    【讨论】:

    • 希望你仍然收到这个。你是如何经营 chef-solo 的?我已经设置好了,我的命令仍然找不到我的食谱。我正在使用与您的类似的 solo.rb 文件,现在我正在使用与您的完全一样的文件,但它得到一个错误,说它找不到运行列表中第一项的食谱。我需要基本食谱吗?我应该把它放在哪里?我只有 cookbooks 目录,没有 site_cookbooks 目录。
    【解决方案2】:

    你到底在学习什么教程?

    你应该有一个名为“base”的角色,在它的运行列表中你应该有recipe[ntp],以及一个 ntp 食谱,它应该在 site-cookbooks/ntp 下(ntp 食谱将是 site-cookbooks /ntp/recipes/default.rb)。

    老实说,我不确定你的厨师运行期间到底发生了什么,你能发个日志吗?

    【讨论】:

    • 我一直在努力解决这个问题:illuminatedcomputing.com/posts/2012/02/…。正如您在上面看到的,我没有完全针对 base 的角色,而是在 site-cookbooks 目录中有我自己的 base 配方。我会尝试将 ntp 食谱从食谱移动到网站食谱,但从我读过的所有内容来看,因为我的 solo.rb 引用了食谱文件夹,所以它应该没问题。将日志添加到主帖子。感谢您的回复!
    • 所以我从一个新的 ubuntu vm 开始,运行我的主厨独奏食谱,其中包含一个名为 site-cookbooks/ntpp 的故意错误命名的包含 ntp 食谱的目录。无论如何,Chef 仍然非常乐意安装 ntp 服务。但它不是来自我的食谱,因为/etc/ntp.conf 文件不是来自我的模板。所以谜团还在继续。我尝试了另一种服务,例如 java。在这种情况下,我正确地得到了这个错误:Package: package[java] (base::default line 3) had an error: Chef::Exceptions::Package: No version specified, and no candidate version available for java
    • 在您的新 VM 上,您是否在重命名之前使用正确命名的 ntp 说明书运行了它?它可能已被缓存。
    • 嗨 Nils,我在这个新的虚拟机上做的第一件事就是使用错误命名的 ntp 食谱运行。所以我无法想象缓存的食谱是这种情况下的一个因素。
    猜你喜欢
    • 2013-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-29
    • 2014-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多