Chef-lightweight-resource-provider

提供:Dev Guides
移動先:案内検索

シェフ-軽量リソースプロバイダー

  • Lightweight Resource Provider(LWRP)*は、機能を拡張することで利用可能なリソースのリストを拡張するオプションを提供し、Chefユーザーがカスタムリソースを作成できるようにします。

カスタムリソースを作成すると、レシピコードをより表現力豊かにするのに役立つChef DSLを使用して充実したカスタムリソースを所有できるため、単にクックブックを作成できます。

Chefコミュニティでは、カスタムリソースの多くはLWRPを使用して実装されます。 iptables_rulesapt_repository など、LWRPの多くの実例があります。

作業方法

クックブック名​​Testing_resourceと、Testing_resourceクックブックを含むノードのrun_listがあることを確認してください。

LWRPの構築

  • ステップ1 *-Testing_resourceクックブックでカスタムリソースを作成します。
vipin@laptop:~/chef-repo $ subl cookbooks/Testing_resource/resources/default.rb
actions :create, :remove
attribute :title, kind_of: String, default: "World"
attribute :path, kind_of: String, default: "/tmp/greeting.txt"
  • ステップ2 *-Tesing_resourceクックブックでリソースのプロバイダーを作成します。
vipin@laptop:~/chef-repo $ subl cookbooks/Testing_resource/provider/default.rb
action :create do
   log "Adding '#{new_resource.name}' greeting as #{new_resource.
      path}"
   file new_resource.path do
      content "#{new_resource.name}, #{new_resource.title}!"
      action :create
end
action :remove do
   Chef::Log.info "Removing '#{new_resource.name}' greeting #{new_resource.path}"
   file new_resource.path do
      action :delete
   end
end
  • ステップ3 *-Testing_resourceのデフォルトレシピを編集して、新しいリソースを使用します。
vipin@laptop:~/chef-repo $ subl cookbooks/Tesing_resource/recipes/default.rb
greeting "Ohai" do
   title "Chef"
   action :create
end
  • ステップ4 *-変更したクックブックをChefサーバーにアップロードします。
vipin@laptop:~/chef-repo $ knife cookbook upload greeting
Uploading greeting [0.1.0]
  • ステップ5 *-ノードでChef-Clientを実行します。
vipin@server:~$ sudo chef-client
...TRUNCATED OUTPUT...
2013-06-28T21:32:54+00:00] INFO: Processing greeting[Ohai] action
create (greeting::default line 9)
[2013-06-28T21:32:54+00:00] INFO: Adding 'Ohai' greeting as/tmp/
greeting.txt
[2013-06-28T21:32:54+00:00] INFO: Processing file[/tmp/greeting.
txt] action create (/srv/chef/file_store/cookbooks/greeting/
providers/default.rb line 7)
[2013-06-28T21:32:54+00:00] INFO: entered create
[2013-06-28T21:32:54+00:00] INFO: file[/tmp/greeting.txt] created
file/tmp/greeting.txt
...TRUNCATED OUTPUT...
  • ステップ6 *-生成されたファイルの内容を検証します。
user@server:~$ cat/tmp/greeting.txt
Ohai, Chef!

ワークフロースクリプト

LWRPは料理の本に住んでいます。 カスタムリソースはクックブック内に存在し、クックブック名​​の下で使用できます。 ワークフローでは、まず定義を定義してから、クックブックで使用されるリソースに属性を渡します。 最後に、レシピでこれらのアクションと属性を使用します。