0

こんにちは、以下のコードを使用してグループを作成しています。シェフに「Chef::Provider::Group::Groupadd」プロバイダーを使用してもらいたいのですが、これを Red Hat Enterprise Linux Server リリース 6.4 で実行しています。

シェフ クライアント バージョン 11.4.0

グループの作成に使用された Chef レシピ

group node['was']['usr_grp'] do
   action :create
end

エラー

================================================================================
Error executing action `create` on resource 'group[webspher]'
================================================================================


Chef::Exceptions::Exec
----------------------
groupmod webspher returned 6, expected 0


Resource Declaration:
---------------------
# In /var/chef/cache/cookbooks/WAS/recipes/default.rb

 35: group node['was']['usr_grp'] do
 36:   action :create
 37: end
 38:



Compiled Resource:
------------------
# Declared in /var/chef/cache/cookbooks/WAS/recipes/default.rb:35:in `from_file'

group("webspher") do
  action [:create]
  retries 0
  retry_delay 2
  group_name "webspher"
  gid 901
  cookbook_name "WAS"
  recipe_name "default"
end



[2013-09-25T13:36:45-05:00] INFO: Running queued delayed notifications before re-raising exception
[2013-09-25T13:36:45-05:00] ERROR: Running exception handlers
[2013-09-25T13:36:45-05:00] FATAL: Saving node information to /var/chef/cache/failed-run-data.json
[2013-09-25T13:36:45-05:00] ERROR: Exception handlers complete
Chef Client failed. 0 resources updated
[2013-09-25T13:36:45-05:00] FATAL: Stacktrace dumped to /var/chef/cache/chef-stacktrace.out
[2013-09-25T13:36:45-05:00] FATAL: Chef::Exceptions::Exec: group[webspher] (WAS::default line 35) had an error: Chef::Exceptions::Exec: groupmod webspher returned 6, expected 0
4

2 に答える 2

2

通常、グループ リソースをデバッグする方法は、groupadd コマンドを実行して結果を観察することです。

あなたの状況では

groupadd -g 901 webspher

おそらく、シェフの実行が失敗する理由を説明できます。

ほとんどの場合、これはグループが既に存在しているか、gid が既に使用されていることが原因です。これは次の方法で確認できます

grep 901 /etc/groups

grep webspher /etc/groups 
于 2013-09-29T13:39:50.497 に答える
1

Kamararadclimber に感謝します。終了コード 6 はグループが存在しないことを意味するので、理想的にはグループを作成する必要があります。

私が見つけた問題は、私たちの環境に限ったものでした。Active Directory がシステムに関連付けられているため、グループとユーザーが Active Directory に作成され、マシンにマッピングされます。

どういうわけか、私が作成しようとしていたユーザーは Active Directory にありましたが、適切にマップされていませんでした。つまり、/etc/groups には存在しませんでした。

Chef はどうにかしてグループが存在することを発見できましたが、実際に Active Directory でそれをどのように把握しているかはわかりませんでしたが、それが原因でエラーが発生しました。

groupadd は、グループをローカルに作成しただけで、Active Directory のどこもチェックしていなかったため、正常に機能しました。

すべてのサポートに感謝します

于 2013-10-09T18:07:30.523 に答える