Build Status Coverage Status

NAME

Chef::Knife::Cmd - A small wrapper around the Chef 'knife' command line utility

SYNOPSIS

use Chef::Knife::Cmd;

my $knife = Chef::Knife::Cmd->new(
    verbose   => 0,           # if true, tee output to STDOUT; default is false
    logfile   => 'knife.log',
    print_cmd => 1,
);

# knife bootstrap
$knife->bootstrap($fqdn, %options);

# knife client
$knife->client->delete($client, %options);

# knife ec2
$knife->ec2->server->list(%options);
$knife->ec2->server->create(%options);
$knife->ec2->server->delete(\@nodes, %options);

# knife node
$knife->node->show($node, %options);
$knife->node->list($node, %options);
$knife->node->create($node, %options);
$knife->node->delete($node, %options);
$knife->node->flip($node, $environment, %options);
$knife->node->run_list->add($node, \@entries, %options);

# knife vault commands
# hint: use $knife->vault->item() instead of $knife->vault->show()
$knife->vault->create($vault, $item, $values, %options);
$knife->vault->update($vault, $item, $values, %options);
$knife->vault->show($vault, $item_name, %options);

# knife search commands
$knife->search->node($query, %options);
$knife->search->client($query, %options);

# knife data bag commands
$knife->data_bag->show($data_bag, %options);

# All methods return the output of the cmd as a string
my $out = $knife->node->show('mynode');
# => 
# Node Name:   mynode
# Environment: production
# FQDN:        
# IP:          12.34.56.78
# Run List:    ...
# ...

# All methods return the output of the cmd as a hashref when '--format json' is used
my $hashref = $knife->node->show('mynode', format => 'json');
# =>
# {
#     name             => "mynode",
#     chef_environment => "production",
#     run_list         => [...],
#     ...
# }

DESCRIPTION

This module is a small wrapper around the Chef 'knife' command line utility. It would be awesome if this module used the Chef server API, but this module is not that awesome.

Some things worth knowing about this module:

SEE ALSO

LICENSE

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

AUTHOR

Eric Johnson eric.git@iijo.org