Files
chef/cookbooks/redisio/README.md
T

101 lines
2.1 KiB
Markdown

# Redisio Cookbook
[![Cookbook Version](https://img.shields.io/cookbook/v/redisio.svg)](https://supermarket.chef.io/cookbooks/redisio)
[![License](https://img.shields.io/badge/License-Apache%202.0-green.svg)](https://opensource.org/licenses/Apache-2.0)
`redisio` is a resource-first Sous Chefs cookbook for installing Redis and managing Redis server and Sentinel instances with systemd.
Upgrading from version 7 requires recipe and attribute migrations. Read the [version 8 upgrade guide](UPGRADING.md) before changing the cookbook constraint.
## Supported Platforms
- Amazon Linux 2023
- Debian 12 and 13
- Rocky Linux 9
- Ubuntu 22.04 and 24.04
## Resources
### Preferred resources
- `redisio_install`
- `redisio_server`
- `redisio_sentinel_instance`
### Compatibility wrappers
- `redisio_configure`
- `redisio_sentinel`
The compatibility wrappers preserve the old aggregate `servers` and `sentinels` payload shapes while delegating to the new per-instance resources.
## Basic Usage
### Install Redis from packages and start one instance
```ruby
redisio_install 'default' do
package_install true
end
redisio_server '6379' do
package_install true
end
```
### Create a named secondary instance
```ruby
redisio_server 'savetest' do
package_install true
port 16_379
permissions '0640'
save ['3600 1', '300 100', '60 10000']
logfile '/var/log/redis/redis-16379.log'
end
```
### Create a Sentinel instance
```ruby
redisio_sentinel_instance 'cluster' do
package_install true
masters [
{
master_name: 'master6379',
master_ip: '127.0.0.1',
master_port: 6379,
},
]
end
```
### Use the compatibility wrapper
```ruby
redisio_configure 'default' do
package_install true
servers [
{ 'port' => 6379 },
{ 'name' => 'savetest', 'port' => 16_379, 'permissions' => '0640' },
]
end
```
## Testing
Run lint and unit tests with:
```bash
cookstyle
chef exec rspec --format documentation
```
Run the default integration suite with:
```bash
KITCHEN_LOCAL_YAML=kitchen.dokken.yml kitchen test default-ubuntu-2404 --destroy=always
```
Additional public API details live in `documentation/*.md`.