Chefでオペレータユーザーが作成できない
受付中
回答 2
投稿
- 評価
- クリップ 0
- VIEW 2,180
現在、仮想サーバー構築をVagrant/Chefを駆使して行っています。
site-cookbooksの中に、オペレータユーザーを作るカスタムレシピを作成中なのですが、
下記のようなエラーが発生し、成功時に出る、INFO: user[ops] createdというメッセージが見当たりません。
==> default: Running provisioner: chef_solo...
==> default: Detected Chef (latest) is already installed
==> default: Generating chef JSON and uploading...
==> default: Running chef-solo...
==> default: stdin: is not a tty
==> default: [2016-04-17T10:52:01+00:00] INFO: Forking chef instance to converge...
==> default: Starting Chef Client, version 12.10.5
==> default: [2016-04-17T10:52:01+00:00] INFO: *** Chef 12.10.5 ***
==> default: [2016-04-17T10:52:01+00:00] INFO: Platform: x86_64-linux
==> default: [2016-04-17T10:52:01+00:00] INFO: Chef-client pid: 1433
==> default: [2016-04-17T10:52:03+00:00] INFO: Setting the run_list to ["recipe[build-essential]", "recipe[git]", "recipe[memcached]", "recipe[nodejs]", "recipe[database]", "recipe[xml]", "recipe[ruby_build]", "recipe[rbenv::system]", "recipe[nginx]", "recipe[imagemagick]", "recipe[rails_book_cookbook::ops_user]"] from CLI options
==> default: [2016-04-17T10:52:03+00:00] INFO: Run List is [recipe[build-essential], recipe[git], recipe[memcached], recipe[nodejs], recipe[database], recipe[xml], recipe[ruby_build], recipe[rbenv::system], recipe[nginx], recipe[imagemagick], recipe[rails_book_cookbook::ops_user]]
==> default: [2016-04-17T10:52:03+00:00] INFO: Run List expands to [build-essential, git, memcached, nodejs, database, xml, ruby_build, rbenv::system, nginx, imagemagick, rails_book_cookbook::ops_user]
==> default: [2016-04-17T10:52:03+00:00] INFO: Starting Chef Run for vagrant-f6bd31b6
==> default: [2016-04-17T10:52:03+00:00] INFO: Running start handlers
==> default: [2016-04-17T10:52:03+00:00] INFO: Start handlers complete.
==> default: Installing Cookbook Gems:
==> default: Compiling Cookbooks...
==> default: [2016-04-17T10:52:05+00:00] WARN: Chef::Provider::AptRepository already exists! Cannot create deprecation class for LWRP provider apt_repository from cookbook apt
==> default: [2016-04-17T10:52:05+00:00] WARN: AptRepository already exists! Deprecation class overwrites Custom resource apt_repository from cookbook apt
==> default:
==> default: ================================================================================
==> default: Recipe Compile Error
==> default: ================================================================================
==> default:
==> default:
==> default: Chef::Exceptions::RecipeNotFound
==> default: --------------------------------
==> default: could not find recipe default for cookbook database
==> default:
==> default:
==> default: Platform:
==> default: ---------
==> default: x86_64-linux
==> default:
==> default:
==> default:
==> default: Running handlers:
==> default: [2016-04-17T10:52:05+00:00] ERROR: Running exception handlers
==> default: Running handlers complete
==> default:
==> default: [2016-04-17T10:52:05+00:00] ERROR: Exception handlers complete
==> default: Chef Client failed. 0 resources updated in 03 seconds
==> default: [2016-04-17T10:52:05+00:00] FATAL: Stacktrace dumped to /var/chef/cache/chef-stacktrace.out
==> default: [2016-04-17T10:52:05+00:00] FATAL: Please provide the contents of the stacktrace.out file if you file a bug report
==> default: [2016-04-17T10:52:05+00:00] ERROR: could not find recipe default for cookbook database
==> default: [2016-04-17T10:52:05+00:00] FATAL: Chef::Exceptions::ChildConvergeError: Chef run process exited unsuccessfully (exit code 1)
ops_user.rbに以下のコードを記載しています。
#
# Cookbook Name:: rails_book_cookbook
# Recipe:: ops_user
user 'ops'
そして適用するためにVagrantfileには以下のように記述しています。
config.vm.provision :chef_solo do |chef|
chef.cookbooks_path = ["./cookbooks", "./site-cookbooks"]
chef.add_recipe 'build-essential'
chef.add_recipe 'git'
chef.add_recipe 'memcached'
chef.add_recipe 'nodejs'
chef.add_recipe 'database'
chef.add_recipe 'xml'
chef.add_recipe 'ruby_build'
chef.add_recipe 'rbenv::system'
chef.add_recipe 'nginx'
chef.add_recipe 'imagemagick'
chef.add_recipe 'rails_book_cookbook::ops_user'
chef.json = {
"rbenv" => {
"global" => "2.1.2",
"rubies" => ["2.1.2"],
"gems" => {
"2.1.2" => [
{ 'name' => 'bundler'}
]
}
}
}
end
エラーの原因・解決策がわかるかたいらっしゃいましたらよろしくお願い致します。
-
気になる質問をクリップする
クリップした質問は、後からいつでもマイページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
クリップを取り消します
-
良い質問の評価を上げる
以下のような質問は評価を上げましょう
- 質問内容が明確
- 自分も答えを知りたい
- 質問者以外のユーザにも役立つ
評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。
質問の評価を上げたことを取り消します
-
評価を下げられる数の上限に達しました
評価を下げることができません
- 1日5回まで評価を下げられます
- 1日に1ユーザに対して2回まで評価を下げられます
質問の評価を下げる
teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。
- プログラミングに関係のない質問
- やってほしいことだけを記載した丸投げの質問
- 問題・課題が含まれていない質問
- 意図的に内容が抹消された質問
- 過去に投稿した質問と同じ内容の質問
- 広告と受け取られるような投稿
評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。
質問の評価を下げたことを取り消します
この機能は開放されていません
評価を下げる条件を満たしてません
質問の評価を下げる機能の利用条件
この機能を利用するためには、以下の事項を行う必要があります。
- 質問回答など一定の行動
-
メールアドレスの認証
メールアドレスの認証
-
質問評価に関するヘルプページの閲覧
質問評価に関するヘルプページの閲覧
0
エラーメッセージに
==> default: could not find recipe default for cookbook database
とあることから、database
クックブックのdefault
レシピが見つからないためにエラーとなっています。
指定したクックブック・パス("./cookbooks"
および"./site-cookbooks"
)にdatabase
というクックブックがあり、さらにdefault
というレシピが存在するか確認してみてください。
あるいは、そもそもdatabase
というクックブックが不要なのであれば、Vagrantfile
から
chef.add_recipe 'database'
という一行を削除してください。
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
0
rails_book_cookbook/cookbooks/database/recipe/*のファイルにdefault.rbがないために
Vagrantfileにchef.add_recipe 'database'としてもうまくいきません。
【もしdefault.rbがある場合】
ファイルの中身をみると、
# Cookbook Name::database
# Recipe::default
# 以下、略
` となっているわけで、これだったらchef.add_recipe 'database'でVagrantfileにレシピを追加できます。
【でも実際はsqlite.rbとpostgresql.rbしかない】
sqlite.rbのレシピを読み込みたいとする。sqlite.rbの中身をよく見るとわかるが、
# Cookbook Name::
# Recipe::
#↑の記述がない
#以下略
のようにCookbook NameとRecipeの記述はないですが、database/recipies/sqlite.rb(<Cookbook Name>/recipies/<Recipe>)となっているのでchef.add_recipe 'database::sqlite'で読むことになります。
# Cookbook Name::database
# Recipe::sqlite
#以下,略
と書いてあったほうが他の人が見るときにわかりやすいと思うのでCookbook NameとRecipeは書いたほうがいいかもしれません。
おそらくパーフェクトrailsのp290あたりで困られているのではないかと想像してます。
上記のような直接的な記述はないですが、p286の”レシピ”を読むと仕組みがわかるかと思います。
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
15分調べてもわからないことは、teratailで質問しよう!
- ただいまの回答率 88.37%
- 質問をまとめることで、思考を整理して素早く解決
- テンプレート機能で、簡単に質問をまとめられる