Add code for ring syncing

This commit adds puppet code to handle syncing of the ring
databases.

The class swift::ringserver is used to set up an rsync server
that serve out the ring databases.

The define swift::ringsync is used to rsync these ring databases
to the other hosts.
This commit is contained in:
Dan 2012-03-14 05:45:17 +00:00
parent f93ba72fbb
commit 6fed9719ed
2 changed files with 49 additions and 0 deletions

39
manifests/ringserver.pp Normal file
View File

@ -0,0 +1,39 @@
# Used to create an rsync server to serve up the ring databases via rsync
#
# == Parameters
#
# == Dependencies
#
# Class['swift']
#
# == Examples
#
# == Authors
#
# Dan Bode dan@puppetlabs.com
#
# == Copyright
#
# Copyright 2011 Puppetlabs Inc, unless otherwise noted.
#
class swift::ringserver(
$local_net_ip,
$max_connections = 5
) {
Class['ringbuilder'] -> Class['swift::ringserver']
class { 'rsync::server':
use_xinetd => true,
address => $local_net_ip,
}
rsync::server::module { "swift_server":
path => '/etc/swift',
lock_file => "/var/lock/swift_server.lock",
uid => 'swift',
gid => 'swift',
max_connections => $max_connections,
read_only => true,
}
}

10
manifests/ringsync.pp Normal file
View File

@ -0,0 +1,10 @@
define swift::ringsync(
$ring_server
) {
Exec { path => '/usr/bin' }
rsync::get { "/etc/swift/${name}.ring.gz":
source => "rsync://${ring_server}/swift_server/${name}.ring.gz",
}
}