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:
parent
f93ba72fbb
commit
6fed9719ed
39
manifests/ringserver.pp
Normal file
39
manifests/ringserver.pp
Normal 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
10
manifests/ringsync.pp
Normal 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",
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user