cookbook 'rsync', '~> 5.0.0'
rsync
(33) Versions
5.0.0
-
Follow39
Provides resources to install rsync and manage rsync daemon modules
cookbook 'rsync', '~> 5.0.0', :supermarket
knife supermarket install rsync
knife supermarket download rsync
rsync Cookbook
Rsync cookbook with custom resources for installing rsync and managing rsyncd modules. More info on rsyncd options can be found in the Docs.
Migration
This release removes the legacy recipes and attributes. See [migration.md](migration.md) for the resource migration guide.
Requirements
Platforms
- AlmaLinux 8+
- Amazon Linux 2023+
- CentOS Stream 9+
- Debian 12+
- Fedora
- Oracle Linux 8+
- Red Hat Enterprise Linux 8+
- Rocky Linux 8+
- Ubuntu 22.04+
Chef
- Chef >= 15.3
Resources
- [rsync_install](documentation/rsync_install.md)
- [rsync_service](documentation/rsync_service.md)
- [rsync_serve](documentation/rsync_serve.md)
serve
This resource implements an rsync server module. The following params are chef-only, the rest implement the feature as described in the [rsyncd docs][1].
Parameters
Required
-
path- Path which this module should serve.
Optional
Unless specified these parameters use the rsyncd default values as referenced in the [Rsyncd docs][1]. Params are Strings unless specified otherwise.
-
name- The name of this module that will be referenced by rsync://foo/NAME. Defaults to the resource name. -
config_path- Path to write the rsyncd config. Defaults to/etc/rsyncd.conf. -
globals- Hash of global rsyncd directives for the config file. -
service_name- Service to notify when the config changes. -
comment- Comment when rsync gets the list of modules from the server. -
read_only- Boolean - Serve this as a read-only module. -
write_only- Boolean - Serve this as a write-only module. -
list- Boolean - Add this module the the rsync modules list. -
uid- String - User name or user ID that file transfers use when the daemon runs as root. -
gid- String - Group name or group ID that file transfers use when the daemon runs as root. -
auth_users- Comma and space-separated list of usernames allowed to connect to this module. [more info][1] -
secrets_file- File containing username:password pairs for authenticating this module. [more info][1] -
hosts_allow- Hostname and IP patterns allowed to connect. [more info][1] -
hosts_deny- Hostname and IP patterns denied from connecting. [more info][1] -
max_connections- Integer - *Default:0- The maximum number of simultaneous connections. -
munge_symlinks- Boolean - *Default:true- Modify incoming symlinks in a safe, recoverable way. [more info][1] -
use_chroot- Boolean - Chroot to the module path before starting file transfer. -
numeric_ids- Boolean - *Default:true- Disable user/group name mapping for the module. -
fake_super- Boolean - Store full file attributes without running the daemon as root. -
exclude_from- File containing daemon exclude patterns. [more info][1] -
exclude- Daemon exclude patterns. [more info][1] -
include_from- Analogue ofexclude_from. -
include- Analogue ofexclude. -
strict_modes- Boolean - Require the secrets file to be readable only by the daemon user ID. -
log_file- Module log file path. -
log_format- Per-transfer log format. [more info][1] -
transfer_logging- Enables per-file logging of downloads and uploads. -
timeout- Integer - Default:600- Client timeout in seconds. -
dont_compress- Filename patterns that should not be compressed. -
lock_file- Lock file used to supportmax_connections. -
refuse_options- Space-separated list of refused rsync command-line options. -
prexfer_exec- Command to run before each transfer to or from this module. -
postxfer_exec- Command to run after each transfer to or from this module.
Usage
After loading the rsync cookbook you have access to the rsync_serve resource for serving up a generic rsyncd module with many options.
Declare rsync_install and rsync_service before rsync_serve when managing a daemon.
Examples
Serve a directory:
rsync_install 'default' rsync_service 'default' rsync_serve 'tmp' do path '/tmp' end
Serve a directory with read only and specify uids:
rsync_install 'default' rsync_service 'default' rsync_serve 'tmp' do path '/tmp' uid 'nobody' gid 'nobody' read_only true end
A more complex example with networking:
rsync_install 'default' rsync_service 'default' rsync_serve 'centos-prod' do path '/data/repos/prod/centos' comment 'CentOS prod mirror' read_only true use_chroot true list true uid 'nobody' gid 'nobody' hosts_allow '127.0.0.1, 10.4.1.0/24, 192.168.4.0/24' hosts_deny '0.0.0.0/0' max_connections 10 transfer_logging true log_file '/tmp/centos-sync' postxfer_exec '/usr/local/bin/collect_things.sh' end
Contributors
This project exists thanks to all the people who contribute.
Backers
Thank you to all our backers!
Sponsors
Support this project by becoming a sponsor. Your logo will show up here with a link to your website.
Dependent cookbooks
This cookbook has no specified dependencies.
Contingent cookbooks
rsync Cookbook CHANGELOG
This file is used to list changes made in each version of the rsync cookbook.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
5.0.0 (2026-05-06)
⚠ BREAKING CHANGES
- migrate rsync to custom resources (#79)
Features
Bug Fixes
4.0.11 (2025-10-16)
Bug Fixes
4.0.0 - 2023-05-04
- Enable
unified_modeand require Chef >= 15.3 - Update and fix CI, tests and platforms
- Update sous-chefs/.github action to v2
- Update actions/checkout action to v3
3.1.5 - 2023-02-14
- Add renovate.json
3.1.4 - 2023-02-14
- Standardise files with files in sous-chefs/repo-management
3.1.3 - 2022-02-08
- Remove delivery folder
3.1.2 - 2021-08-30
- Standardise files with files in sous-chefs/repo-management
3.1.1 - 2021-06-01
- Standardise files with files in sous-chefs/repo-management
3.1.0 - 2020-11-20
- Fixed issue with auto release system
3.0.0 - 2020-11-20
Changed
- Sous Chefs Adoption
- Update Changelog to Sous Chefs
- Update to use Sous Chefs GH workflow
- Update README to sous-chefs
- Update metadata.rb to Sous Chefs
- Update test-kitchen to Sous Chefs
- Improve InSpec tests
Fixed
- Yamllint fixes
- MDL fixes
Added
- Management of systemd unit file
- Add library helpers
- Add
node['rsyncd']['options']attribute for additional daemon arguments
Removed
- Remove testing for Amazon Linux 1 & CentOS 6
- Remove support for init.d based systems
- Remove the following attributes:
node['rsyncd']['service'],node['rsyncd']['nice'],node['rsyncd']['ionice']
2.0.2 (2020-07-27)
- Do not use kind_of in resource properties to fix failures - @infertux
- Convert to a custom resource to resolve missing :remove action - @tas50
- Test on Chef Infra Client 15 and 16 as well - @tas50
2.0.1 (2020-07-26)
- Sort modules alphabetically to preserve idempotency - @infertux
- Cookstyle fixes - @tas50
- Standardise files with files in chef-cookbooks/repo-management - @xorimabot
3.0.0 - 2020-11-20
- resolved cookstyle error: spec/server_spec.rb:11:7 warning:
ChefDeprecations/DeprecatedChefSpecPlatform - resolved cookstyle error: resources/serve.rb:12:1 refactor:
ChefRedundantCode/UnnecessaryNameProperty
2.0.0 (2019-10-07)
- Update specs to the latest platform versions - @tas50
- Update the platforms we test - @tas50
- Require Chef 13+ and resolve cookstyle warnings - @tas50
1.1.0 (2018-03-11)
- Add Amazon linux compatibility for init script.
- Remove the ChefSpec matchers. These are auto generated by modern ChefSpec/ChefDK
1.0.3 (2017-10-17)
- Fix chef 13 compatibility
1.0.2 (2017-04-26)
- Cookstyle fixes
- Test with Local Delivery instead of Rake
- Update apache2 license string
1.0.1 (2016-09-18)
- Clarify in readme we require Chef 12.1+
- Update maintainer text
- Disable use_inline_resources as it breaks the provider
- Convert tests to use inspec
- Moved all testing to the test recipe and removed the need for the apt cookbook in testing
1.0.0 (2016-09-07)
- Run integration tests in Travis CI with kitchen-dokken
- Run chefspec and cookstyle in Travis
- Add use_inline_resources to the provider
- Require chef 12
v0.8.9 (2015-10-05)
- Fixed support for Chef 12.4.X and later
- Added Chefspec matchers
- Added additional platforms to Test Kitchen
- Updated rubocop rules to our standard set and resolved all warnings
- Updated Travis CI to test on additional Ruby versions
- Updated contributing and testing docs
- Added maintainers.toml and maintainers.md files
- Added additional testing depedendencies to the Gemfile with version pinning
- Added cookbook version and Travis CI badges to the readme
- Clarified that Chef 11.0 is the minimum required Chef version for this cookbook
- Removed outdated development information from the readme
- Added a Rakefile for simplified testing
- Added a chefignore file to limit what files are uploaded to the Chef server
- Added Amazon Linux, Oracle, and Scientific Linux to the metadata Added source_url and issues_url to metadata.rb for Supermarket
- Removed all pre-Ruby 1.9 hash rockets
v0.8.8 (2015-05-07)
- [#15] Add incoming/outgoing chmod options
- [#16] Add prexfer/postxfer exec commands
- [#14,#17] Support Chef 12
v0.8.6 (2014-09-30)
- [#11] Fixes to allow rsync daemon to be started if not up.
v0.8.4
Improvement
- Add Test Kitchen, Specs, and Travis CI
v0.8.2
Improvement
- Add
refuse_optionsparameter torsync_serve
Bug
- Support chkconfig
- Allow setting value to false in
rsyncd.conf
v0.8.0
- [COOK-878] - Add LWRP for rsyncd.conf and server recipe
v0.7.0
- Initial released version
Collaborator Number Metric
5.0.0 passed this metric
Contributing File Metric
5.0.0 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must contain a CONTRIBUTING.md file
Cookstyle Metric
5.0.0 passed this metric
No Binaries Metric
5.0.0 passed this metric
Testing File Metric
5.0.0 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must contain a TESTING.md file
Version Tag Metric
5.0.0 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must include a tag that matches this cookbook version number
5.0.0 passed this metric
5.0.0 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must contain a CONTRIBUTING.md file
Cookstyle Metric
5.0.0 passed this metric
No Binaries Metric
5.0.0 passed this metric
Testing File Metric
5.0.0 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must contain a TESTING.md file
Version Tag Metric
5.0.0 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must include a tag that matches this cookbook version number
5.0.0 passed this metric
5.0.0 passed this metric
Testing File Metric
5.0.0 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must contain a TESTING.md file
Version Tag Metric
5.0.0 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must include a tag that matches this cookbook version number
5.0.0 failed this metric
5.0.0 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must include a tag that matches this cookbook version number