NAME
Pantry::Model::Node - Pantry data model for nodes
VERSION
version 0.012
SYNOPSIS
my $pantry = Pantry::Model::Pantry->new;
my $node = $pantry->node("foo.example.com");
$node->append_to_run_list('recipe[nginx]');
$node->set_attribute('nginx.port' => 80);
$node->save;
DESCRIPTION
Models the configuration data for a specific server.
ATTRIBUTES
name
This attribute is the canonical name of the node, generally a fully-qualified domain name
name
This attribute is the name of the environment to which the node belongs. This defaults to _default
.
run_list
This attribute is provided by the Pantry::Role::Runlist role and holds a list of recipes (or roles) to be configured by chef-solo
.
attributes
This attribute holds node attribute data as key-value pairs. Keys may be separated by a period to indicate nesting (literal periods must be escaped by a backslash). Values should be scalars or array references, except for boolean values which should be set as JSON::Boolean values like JSON::true
and JSON::false
.
pantry_host
This optional attribute holds an alternate hostname or IP address to use for the SSH connection within pantry sync
. In all other respects, the node will still be referenced by the name
attribute.
pantry_port
This optional attribute holds an alternate port number to use for the SSH connection within pantry sync
.
pantry_user
This optional attribute holds an alternate user for the SSH connection within pantry sync
. (The default is root
.) This user must have password-less sudo permissions.
METHODS
set_attribute
$node->set_attribute("nginx.port", 80);
Sets the node attribute for the given key to the given value.
get_attribute
my $port = $node->get_attribute("nginx.port");
Returns the node attribute for the given key.
delete_attribute
$node->delete_attribute("nginx.port");
Deletes the node attribute for the given key.
save
Saves the node to a file in the pantry. If the private _path
attribute has not been set, an exception is thrown.
AUTHOR
David Golden <dagolden@cpan.org>
COPYRIGHT AND LICENSE
This software is Copyright (c) 2011 by David Golden.
This is free software, licensed under:
The Apache License, Version 2.0, January 2004