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:
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",
|
||||||
|
}
|
||||||
|
}
|
Reference in New Issue
Block a user