cookbook 'managed_directory', '= 0.2.0'
managed_directory (6) Versions 0.2.0 Follow2
Provides the managed_directory resource
cookbook 'managed_directory', '= 0.2.0', :supermarket
knife supermarket install managed_directory
knife supermarket download managed_directory
Description
Provides an LWRP to declare that a directory's contents are entirely
managed by Chef. When a node is converged, any files present in the
managed_directory
that are not managed by Chef will be removed.
Requirements
Platform
Known to work on CentOS and OS X. Should work on other Unix-like
systems.
Resource/Provider
managed_directory
Ensure that a directory contains only files put there by Chef in this
run. Any other files will be removed.
Actions
-
:clean
- Remove any unmanaged files.
Attribute Parameters
-
path
- (name attribute) The absolute path to the directory to be managed. -
clean_files
- Boolean to determine whether unmanaged files should be removed. Default istrue
. -
clean_links
- Boolean to determine whether unmanaged links should be removed. Default istrue
. -
clean_directories
- Boolean to determine whether unmanaged subdirectories should be removed. Default isfalse
.
Usage
default
Include the default recipe in a run list to make the resource
available in your run.
test
The 'test' recipe illustrates use of the managed_directory
resource.
test_directories
The 'test_directories' recipe illustrates use of the managed_directory
resource when having it clean up unwanted subdirectories.
Caveats
The directory to be managed must already exist. If you also need
to ensure that the directory exists, use the Directory resource
separately.If you require subdirectories to be managed as well, be sure to set the
clean_directories
attribute totrue
A file is considered to be managed if there is a resource with a
name attribute equal to the file's full path. It will do the wrong
thing if this assumption is not true for the contents of your
directory.Files managed by resources created after this LWRP is converged
(eg, from within aruby_block
or LWRP later in the run list) will
be incorrectly identified as "unmanaged", and then deleted. They
will be recreated later in the run, but this creates a window where
the file is missing.
License and Author
Author: Zachary Stevens (zts@cryptocracy.com)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Dependent cookbooks
This cookbook has no specified dependencies.
Contingent cookbooks
MANAGED_DIRECTORY CHANGELOG
This file is used to list changes made in each version of the managed_directory cookbook.
UNRELEASED
- Added cleaning of subdirectories
- Added separate handling of links, which were formerly handled by the file resource, as managing links via file resources is deprecated
- Added attributes to control handling of files, directories and links
-
clean_files
andclean_links
default totrue
to preserve existing behavior -
clean_directories
defaults tofalse
to preserve existing behavior
-
- Updated tests to current ChefSpec and ServerSpec, following examples from
ChefDK's
chef generate cookbook
output - Updated Test Kitchen to current CentOS (6.6)
- Updated README.md for new behaviors
- Added ChefSpec matchers for test-ability
0.1.0
- add chefspec tests
- FIX don't blow up when resource names are symbols
- Thanks to Mark Friedgan (hubrix) for this fix.
0.0.1
initial release
Check the Markdown Syntax Guide for help with Markdown.
The Github Flavored Markdown page describes the differences between markdown on github and standard markdown.
Foodcritic Metric
0.2.0 failed this metric
FC031: Cookbook without metadata file: /tmp/cook/6366904979d6f87e4c48bb17/managed_directory/metadata.rb:1
FC045: Consider setting cookbook name in metadata: /tmp/cook/6366904979d6f87e4c48bb17/managed_directory/metadata.rb:1
0.2.0 failed this metric
FC045: Consider setting cookbook name in metadata: /tmp/cook/6366904979d6f87e4c48bb17/managed_directory/metadata.rb:1