1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445
|
# puppetlabs-rsync #
#### Table of Contents
1. [Module Description - What does the module do?](#module-description)
3. [Usage - Configuration options and additional functionality](#usage)
4. [Reference - An under-the-hood peek at what the module is doing and how](#reference)
* [Classes](#classes)
* [Defined Types](#defined-types)
5. [Limitations - OS compatibility, etc.](#limitations)
## Module description
puppetlabs-rsync manages rsync clients, repositories, and servers as well as
providing defines to easily grab data via rsync.
## Usage
Install the latest version of rsync
~~~puppet
class { 'rsync':
package_ensure => 'latest'
}
~~~
Get file 'foo' via rsync
~~~puppet
rsync::get { '/foo':
source => "rsync://${rsyncServer}/repo/foo/",
require => File['/foo'],
}
~~~
Put file 'foo' on 'rsyncDestHost'
~~~puppet
rsync::put { '${rsyncDestHost}:/repo/foo':
user => 'user',
source => "/repo/foo/",
}
~~~
Setup default rsync repository
~~~puppet
rsync::server::module{ 'repo':
path => $base,
require => File[$base],
}
~~~
To disable default values for `incoming_chmod` and `outgoing_chmod`, and
do not add empty values to the resulting config, set both values to `false`
~~~puppet
rsync::server::module { 'repo':
path => $base,
incoming_chmod => false,
outgoing_chmod => false,
require => File[$base],
}
~~~
#### Configuring via Hiera
`rsync::put`, `rsync::get`, and `rsync::server::module` resources can be
configured using Hiera hashes. For example:
~~~yaml
rsync::server::modules:
myrepo:
path: /mypath
incoming_chmod: false
outgoing_chmod: false
myotherrepo:
path: /otherpath
read_only: false
~~~
## Reference
**Classes:**
* [rsync](#rsync)
**Defined Types:**
* [rsync::get](#rsyncget)
* [rsync::put](#rsyncput)
* [rsync::server::module](#rsyncservermodule)
### Classes
#### rsync
Manage the rsync package.
##### `package_ensure`
Ensure the for the rsync package. Any of the valid values for the package resource (present, absent, purged, held, latest) are acceptable.
Default value: 'installed'
##### `manage_package`
Setting this to false stops the rsync package resource from being managed.
Default value: `true`
### Defined Types
#### rsync::get
get files via rsync
##### `source`
**Required**
Source to copy from.
##### `path`
Path to copy to.
Default value: `$name`
##### `user`
Username on remote system
##### `purge`
If set, rsync will use '--delete'
##### `recursive`
If set, rsync will use '-r'
##### `links`
If set, rsync will use '--links'
##### `hardlinks`
If set, rsync will use '--hard-links'
##### `copylinks`
If set, rsync will use '--copy-links'
##### `times`
If set, rsync will use '--times'
##### `exclude`
String (or array of strings) paths for files to be excluded.
##### `include`
String (or array of strings) paths for files to be explicitly included.
##### `exclude_first`
If `true`, exclude first and then include; the other way around if `false`.
Default value: `true`
##### `keyfile`
SSH key used to connect to remote host.
##### `timeout`
Timeout in seconds.
Default value: 900
##### `execuser`
User to run the command (passed to exec).
##### `options`
Default options to pass to rsync (-a).
##### `chown`
USER:GROUP simple username/groupname mapping.
##### `chmod`
File and/or directory permissions.
##### `logfile`
Log file name.
##### `onlyif`
Condition to run the rsync command.
#### rsync::put
put files via rsync
##### `source`
**Required**
Source to copy from.
##### `path`
Path to copy to.
Default value: `$name`
##### `user`
Username on target remote system.
##### `purge`
If set, rsync will use '--delete'
##### `exclude`
String (or array of strings) paths for files to be excluded.
##### `include`
String (or array of strings) paths for files to be explicitly included.
##### `exclude_first`
If `true`, exclude first and then include; the other way around if `false`.
Default value: `true`
##### `keyfile`
Path to SSH key used to connect to remote host.
Default value: '/home/${user}/.ssh/id_rsa'
##### `timeout`
Timeout in seconds.
Default value: 900
##### `options`
Default options to pass to rsync (-a)
#### rsync::server::module
Sets up a rsync server
##### `path`
_Required_
Path to data.
##### `comment`
Rsync comment.
##### `motd`
File containing motd info.
##### `pid_file`
PID file. Defaults to /var/run/rsyncd.pid. The pid file parameter won't be applied if set to "UNSET"; rsyncd will not use a PID file in this case.
##### `read_only`
yes||no
Default value: 'yes'
##### `write_only`
yes||no
Default value: 'no'
##### `list`
yes||no
Default value: 'no'
##### `uid`
uid of rsync server
Default value: 0
##### `gid`
gid of rsync server
Default value: 0
##### `incoming_chmod`
Incoming file mode
Default value: '644'
##### `outgoing_chmod`
Outgoing file mode
Default value: '644'
##### `max_connections`
Maximum number of simultaneous connections allowed
Default value: 0
##### `lock_file`
File used to support the max connections parameter. Only needed if max_connections > 0.
Default value: '/var/run/rsyncd.lock'
##### `secrets_file`
Path to the file that contains the username:password pairs used for authenticating this module.
##### `auth_users`
List of usernames that will be allowed to connect to this module (must be undef or an array).
##### `hosts_allow`
List of patterns allowed to connect to this module ([rsyncd.conf man page] for details, must be undef or an array).
##### `hosts_deny`
List of patterns allowed to connect to this module ([rsyncd.conf man page] for details, must be undef or an array).
##### `transfer_logging`
Parameter enables per-file logging of downloads and uploads in a format somewhat similar to that used by ftp daemons.
##### `log_format`
This parameter allows you to specify the format used for logging file transfers when transfer logging is enabled. See the [rsyncd.conf man page] for more details.
##### `refuse_options`
List of rsync command line options that will be refused by your rsync daemon.
##### `ignore_nonreadable`
This tells the rsync daemon to completely ignore files that are not readable by the user.
=======
## Parameters: ##
$source - source to copy from
$path - path to copy to, defaults to $name
$user - username on remote system
$purge - if set, rsync will use '--delete'
$exclude - string (or array) to be excluded
$include - string (or array) to be included
$exclude_first - if 'true' (default) then first exclude and then include; the other way around if 'false'
$keyfile - path to ssh key used to connect to remote host, defaults to /home/${user}/.ssh/id_rsa
$timeout - timeout in seconds, defaults to 900
$options - default options to pass to rsync (-a)
## Actions: ##
put files via rsync
## Requires: ##
$source must be set
## Sample Usage: ##
rsync::put { '${rsyncDestHost}:/repo/foo':
user => 'user',
source => "/repo/foo/",
}
# Definition: rsync::server::module #
sets up a rsync server
## Parameters: ##
$path - path to data
$comment - rsync comment
$use_chroot - yes||no, defaults to yes
$motd - file containing motd info
$read_only - yes||no, defaults to yes
$write_only - yes||no, defaults to no
$list - yes||no, defaults to no
$uid - uid of rsync server, defaults to 0
$gid - gid of rsync server, defaults to 0
$numeric_ids - don't resolve uids to usernames, defaults to yes
$incoming_chmod - incoming file mode, defaults to 644
$outgoing_chmod - outgoing file mode, defaults to 644
$max_connections - maximum number of simultaneous connections allowed, defaults to 0
$timeout - disconnect client after X seconds of inactivity, defaults to 0
$lock_file - file used to support the max connections parameter, defaults to /var/run/rsyncd.lock only needed if max_connections > 0
$secrets_file - path to the file that contains the username:password pairs used for authenticating this module
$auth_users - list of usernames that will be allowed to connect to this module (must be undef or an array)
$hosts_allow - list of patterns allowed to connect to this module (man 5 rsyncd.conf for details, must be undef or an array)
$hosts_deny - list of patterns allowed to connect to this module (man 5 rsyncd.conf for details, must be undef or an array)
$transfer_logging - parameter enables per-file logging of downloads and uploads in a format somewhat similar to that used by ftp daemons.
$log_file - log messages to the indicated file rather than using syslog
$log_format - This parameter allows you to specify the format used for logging file transfers when transfer logging is enabled. See the rsyncd.conf documentation for more details.
$refuse_options - list of rsync command line options that will be refused by your rsync daemon.
$include - list of files to include
$include_from - file containing a list of files to include
$exclude - list of files to exclude
$exclude_from - file containing a list of files to exclude
$dont_compress - disable compression on matching files
$ignore_nonreadable - This tells the rsync daemon to completely ignore files that are not readable by the user.
## Actions: ##
sets up an rsync server
## Requires: ##
$path must be set
## Sample Usage: ##
# setup default rsync repository
rsync::server::module{ 'repo':
path => $base,
require => File[$base],
}
To disable default values for ``incoming_chmod`` and ``outgoing_chmod``, and
do not add empty values to the resulting config, set both values to ``false``
rsync::server::module { 'repo':
path => $base,
incoming_chmod => false,
outgoing_chmod => false,
require => File[$base],
}
# Configuring via Hiera #
``rsync::put``, ``rsync::get``, and ``rsync::server::module`` resources can be
configured using Hiera hashes. For example:
[rsyncd.conf man page]:https://download.samba.org/pub/rsync/rsyncd.conf.html
|