Files
puppet-swift/examples/all.pp
Dan Bode 5083e19bc4 Decouple storage server types from each other
Previously, all of the storage server types
(account, container, proxy) were always
configured to be installed on the same node.

It often makes sense to only have the account and
container together, and to put the object server on
a different node. (or its possible that other
configurations make sense)

This commit refactors the swift module so that
each of the types of nodes can be built
independently of each other.
2012-03-02 20:01:49 -08:00

75 lines
1.6 KiB
Puppet

#
# This example file is almost the
# same as what I have been using
# to build swift in my environment (which is based on vagrant)
#
$swift_local_net_ip='127.0.0.1'
$swift_shared_secret='changeme'
Exec { logoutput => true }
package { 'curl': ensure => present }
class { 'ssh::server::install': }
class { 'memcached':
listen_ip => $swift_local_net_ip,
}
class { 'swift':
# not sure how I want to deal with this shared secret
swift_hash_suffix => $swift_shared_secret,
package_ensure => latest,
}
# === Configure Storage
class { 'swift::storage':
storage_local_net_ip => $swift_local_net_ip
}
# create xfs partitions on a loopback device and mounts them
swift::storage::loopback { ['1', '2', '3']:
require => Class['swift'],
}
# sets up storage nodes which is composed of a single
# device that contains an endpoint for an object, account, and container
Swift::Storage::Node {
mnt_base_dir => '/srv/node',
weight => 1,
manage_ring => true,
storage_local_net_ip => $swift_local_net_ip,
}
swift::storage::node { '1':
zone => 1,
require => Swift::Storage::Loopback[1],
}
swift::storage::node { '2':
zone => 2,
require => Swift::Storage::Loopback[2],
}
swift::storage::node { '3':
zone => 3,
require => Swift::Storage::Loopback[3],
}
class { 'swift::ringbuilder':
part_power => '18',
replicas => '3',
min_part_hours => 1,
require => Class['swift'],
}
# TODO should I enable swath in the default config?
class { 'swift::proxy':
account_autocreate => true,
require => Class['swift::ringbuilder'],
}