1

私はとてもシェフは初めてで、ubuntu 12の新鮮なvmを使って、chef-soloで遊んでいます。このテーマに関するいくつかのブログチュートリアルに続いて、VMのレシピを介してntpサービスをインストールすることをいじくり回すことにしました。vmにruby、rubygems、そして最後にchefをインストールさせるブートストラッププロセスを経た後、最初のntp実行は正常に実行されたように見えました。実行前はpgrepntpdは空白を返し、実行後は同じコマンドがプロセスIDを返します。しかし、/ etc / ntp.confファイルを詳しく調べたところ、レシピで定義されているこのファイルのテンプレートバージョンを使用していないことがわかりました。さらに調査した後、私は自分のntpレシピがchef-solo実行でまったく参照されていないという理論をテストし始めました。私はcookbooks/ntpディレクトリの名前をcookbooks/ntp_fooに変更しました。まだ、これが参照される基本レシピはこれに完全に満足しており、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.

何が起こっているのかについて何かアイデアはありますか?ありがとう!

4

2 に答える 2

0

正確にどのチュートリアルに従っていますか?

必要な実行リストに「ベース」と呼ばれる役割がrecipe[ntp]あり、ntp クックブックが site-cookbooks/ntp の下にある必要があります (ntp レシピは site-cookbooks/ntp/recipes/default になります) .rb)。

正直なところ、シェフの実行中に正確に何が起こっているのかわかりません。ログを投稿できますか?

于 2012-06-03T10:03:35.457 に答える
0

run_listsとの関係を根本的に誤解しているだけで、本当に問題はありませんでしたrecipessite-cookbooks私のディレクトリの基本レシピはレシピで、信じられないほど単純なレシピですが、それでも1つです:

package 'ntp'

ディレクトリ内に別のntpレシピがcookbooksあったため、上記の行が何らかの形で 内のレシピを参照する必要があるという誤解につながりましたcookbooks。これはそうではありません。だから私のrun_list変更:

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

に:

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

これによりレシピが呼び出さcookbooks\ntpれ、すべてが私の vm で期待どおりに見えます。これについてアイデアを跳ね返してくれてありがとう、これが仲間のシェフの初心者に役立つことを願っています.

于 2012-06-04T04:58:13.557 に答える