First, lets fire up chef-shell to demonstrate by creating a basic resource
$ chef-shellchef (12.14.57)> recipe_modechef:recipe (12.14.57)> file 'testing_edit' dochef:recipe > content 'words'chef:recipe ?> end=> <file[testing_edit] @name: "testing_edit" @noop: nil @before: nil @params: {} @provider: nil @allowed_actions: [:nothing, :create, :delete, :touch, :create_if_missing] @action: [:create] @updated: false @updated_by_last_action: false @supports: {} @ignore_failure: false @retries: 0 @retry_delay: 2 @source_line: "(irb#1):1:in `irb_binding'" @guard_interpreter: nil @default_guard_interpreter: :default @elapsed_time: 0 @sensitive: false @declared_type: :file @cookbook_name: nil @recipe_name: nil @content: "words">
Easy way to modify resource collection
Now, I am going to modify this resource using a NEW resource edit_resourcechef:recipe (12.14.57)>chef:recipe >chef:recipe > edit_resource(:file, 'testing_edit') dochef:recipe > content 'different words'chef:recipe ?> end=> <file[testing_edit] @name: "testing_edit" @noop: nil @before: nil @params: {} @provider: nil @allowed_actions: [:nothing, :create, :delete, :touch, :create_if_missing] @action: [:create] @updated: false @updated_by_last_action: false @supports: {} @ignore_failure: false @retries: 0 @retry_delay: 2 @source_line: "(irb#1):1:in `irb_binding'" @guard_interpreter: nil @default_guard_interpreter: :default @elapsed_time: 0 @sensitive: false @declared_type: :file @cookbook_name: nil @recipe_name: nil @content: "different words">chef:recipe (12.14.57)>
Coolness (remove resource from collection):
edit_resource(:file,'testing') do
chef:recipe > action :nothing
chef:recipe ?> end
=> <file[testing] @name: "testing" @noop: nil @before: nil @params: {} @provider: nil @allowed_actions: [:nothing, :create, :delete, :touch, :create_if_missing] @action: [:nothing] @updated: false @updated_by_last_action: false @supports: {} @ignore_failure: false @retries: 0 @retry_delay: 2 @source_line: "(irb#1):1:in `irb_binding'" @guard_interpreter: nil @default_guard_interpreter: :default @elapsed_time: 0 @sensitive: false @declared_type: :file @cookbook_name: nil @recipe_name: nil @content: "words">
No comments:
Post a Comment
Comments are welcomed and appreciated.