Chef-lightweight-resource-provider
提供:Dev Guides
シェフ-軽量リソースプロバイダー
- Lightweight Resource Provider(LWRP)*は、機能を拡張することで利用可能なリソースのリストを拡張するオプションを提供し、Chefユーザーがカスタムリソースを作成できるようにします。
カスタムリソースを作成すると、レシピコードをより表現力豊かにするのに役立つChef DSLを使用して充実したカスタムリソースを所有できるため、単にクックブックを作成できます。
Chefコミュニティでは、カスタムリソースの多くはLWRPを使用して実装されます。 iptables_rules や apt_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は料理の本に住んでいます。 カスタムリソースはクックブック内に存在し、クックブック名の下で使用できます。 ワークフローでは、まず定義を定義してから、クックブックで使用されるリソースに属性を渡します。 最後に、レシピでこれらのアクションと属性を使用します。