Chef Queries

Hi,

I am quite new to Chef and was exploring various features (ofcourse on a test
install which did following the helpful install guides).

  1. Reporting end state of Nodes - Is there a way i can get the end state of
    Nodes with respect to the run-list which has been applied to the Nodes ?
    Basically looking for Audit/compliance kind of capability.

  2. With respect to cookbooks, is there a way i can copy a file from the chef
    server repository to the nodes as a part of run-list (for .e.g install xyz.msi
    on node x will require the xyz.msi to be first copied on to the Node and then
    installed.

  3. Can i group the nodes by customer ? I understand that we can create roles
    for grouping nodes with similar services. But in case for a customer solution
    (presuming these nodes are running a customer specific app etc.) i would like
    to patch only these nodes, is it possible ?

  4. Traditionally in Windows, most packages require multiple reboots. So for
    e.g. in my run-list, i have a cookbook A which requires 2 reboots to complete
    an install and a second cookbook B which has a dependency on cookbook A to be
    processed. So, does chef agent has the capability to detect the point till
    where the run-list was executed and then process the remaining run-list after
    the reboots ?

  5. Any native uninstall capabilities for packages deployed using Chef ? So can
    i uninstall a package (which has earlier been deployed using Chef) using a
    standard method or does it require a separate cookbook which has uninstall
    receipes ?

  6. Another audit point is that can i see a complete history of changes which
    has been done to the system using Chef (for e.g. all the run-lists which have
    been applied till date with date/time wise details)

  7. Can Chef report run-list failures (per cookbook per Node) ?

  8. Can i perform a flexible scheduling of packages ? So within a run-list, i
    want x number of packages to be deployed at time A and the remaining y to be
    deployed during time B ?

Apologies for the long list but these are my initial queries after playing
around with Chef for a while.

Thanks,
Ravi

On Fri, Nov 11, 2011 at 10:30 PM, Ravi ravi_rajan_2001@yahoo.com wrote:

Hi,

I am quite new to Chef and was exploring various features (ofcourse on a
test
install which did following the helpful install guides).

  1. Reporting end state of Nodes - Is there a way i can get the end state of
    Nodes with respect to the run-list which has been applied to the Nodes ?
    Basically looking for Audit/compliance kind of capability.

yeah, chef report and exception handler are pretty neat. There are already
nagios, email report handlers available, you can try out them.

  1. With respect to cookbooks, is there a way i can copy a file from the
    chef
    server repository to the nodes as a part of run-list (for .e.g install
    xyz.msi
    on node x will require the xyz.msi to be first copied on to the Node and
    then
    installed.

although its not a file server , you can serve file from chef server using
the cookbook_file resource type, you may consider pushing larger files to
some ftp/http server and fetch them via http request resource.

  1. Can i group the nodes by customer ? I understand that we can create
    roles
    for grouping nodes with similar services. But in case for a customer
    solution
    (presuming these nodes are running a customer specific app etc.) i would
    like
    to patch only these nodes, is it possible ?

you can use tags to do this. and filter nodes based on tags

  1. Traditionally in Windows, most packages require multiple reboots. So for
    e.g. in my run-list, i have a cookbook A which requires 2 reboots to
    complete
    an install and a second cookbook B which has a dependency on cookbook A to
    be
    processed. So, does chef agent has the capability to detect the point till
    where the run-list was executed and then process the remaining run-list
    after
    the reboots ?
  1. Any native uninstall capabilities for packages deployed using Chef ? So

can
i uninstall a package (which has earlier been deployed using Chef) using a
standard method or does it require a separate cookbook which has uninstall
receipes ?

standard package resource can accept action :remove , which will un
install the package

  1. Another audit point is that can i see a complete history of changes
    which
    has been done to the system using Chef (for e.g. all the run-lists which
    have
    been applied till date with date/time wise details)

use report handler to achieve this.

  1. Can Chef report run-list failures (per cookbook per Node) ?

yes via exception handler, also optionally you can continue the chef run
even if certain resources failed to converge,

  1. Can i perform a flexible scheduling of packages ? So within a run-list,
    i
    want x number of packages to be deployed at time A and the remaining y to
    be
    deployed during time B ?

one of chef's core principle is be reasonable and chef try not to act too
smart. Hence complex decision makings are explicitly modelled. chef being
pure ruby makes it fairly straight forward .

Apologies for the long list but these are my initial queries after playing
around with Chef for a while.

Thanks,
Ravi