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