Redis¶
Overview¶
Redis is an open-source, in-memory data structure store used as a database, cache, message broker, and streaming engine. It supports various data structures such as strings, hashes, lists, sets, and sorted sets, making it extremely versatile and fast.
Deployment¶
sb install redis
Usage¶
Redis is deployed using the official Alpine image with data persisting to /opt/redis/. Connect from other containers using redis://redis:6379. Multiple instances are supported via the redis_instances variable in your Saltbox inventory.
For custom configuration, create redis.conf in /opt/redis/ and configure custom volumes in your inventory. Note: No authentication is configured by default.
Role Defaults¶
Use the Inventory to customize variables. (1)
-
This role supports multiple instances via
redis_instances.Example override
redis_role_web_subdomain: "custom"Applies to all instances of redis
redis2_web_subdomain: "custom2"Applies to the instance named redis2
Avoid overriding variables ending in
_defaultWhen overriding variables that end in
_default(likeredis_docker_envs_default), you replace the entire default configuration. Future updates that add new default values will not be applied to your setup, potentially breaking functionality.Instead, use the corresponding
_customvariable (likeredis_docker_envs_custom) to add your changes. Custom values are merged with defaults, ensuring you receive updates.
redis_instances
# Type: list
redis_instances: ["redis"]
Example Override
# Type: list
redis_instances: ["redis", "redis2"]
Container
redis_role_docker_containerredis2_docker_container
# Type: string
redis_role_docker_container: "{{ redis_name }}"
# Type: string
redis2_docker_container: "{{ redis_name }}"
Image
redis_role_docker_image_pullredis2_docker_image_pull
# Type: bool (true/false)
redis_role_docker_image_pull: true
# Type: bool (true/false)
redis2_docker_image_pull: true
redis_role_docker_image_tagredis2_docker_image_tag
# Type: string
redis_role_docker_image_tag: "alpine"
# Type: string
redis2_docker_image_tag: "alpine"
redis_role_docker_image_reporedis2_docker_image_repo
# Type: string
redis_role_docker_image_repo: "redis"
# Type: string
redis2_docker_image_repo: "redis"
redis_role_docker_imageredis2_docker_image
# Type: string
redis_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='redis') }}:{{ lookup('role_var', '_docker_image_tag', role='redis') }}"
# Type: string
redis2_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='redis') }}:{{ lookup('role_var', '_docker_image_tag', role='redis') }}"
Envs
redis_role_docker_envs_defaultredis2_docker_envs_default
# Type: dict
redis_role_docker_envs_default:
TZ: "{{ tz }}"
# Type: dict
redis2_docker_envs_default:
TZ: "{{ tz }}"
redis_role_docker_envs_customredis2_docker_envs_custom
# Type: dict
redis_role_docker_envs_custom: {}
# Type: dict
redis2_docker_envs_custom: {}
Volumes
redis_role_docker_volumes_defaultredis2_docker_volumes_default
# Type: list
redis_role_docker_volumes_default:
- "{{ redis_role_paths_location }}:/data"
# Type: list
redis2_docker_volumes_default:
- "{{ redis_role_paths_location }}:/data"
redis_role_docker_volumes_customredis2_docker_volumes_custom
# Type: list
redis_role_docker_volumes_custom: []
# Type: list
redis2_docker_volumes_custom: []
Hostname
redis_role_docker_hostnameredis2_docker_hostname
# Type: string
redis_role_docker_hostname: "{{ redis_name }}"
# Type: string
redis2_docker_hostname: "{{ redis_name }}"
Networks
redis_role_docker_networks_aliasredis2_docker_networks_alias
# Type: string
redis_role_docker_networks_alias: "{{ redis_name }}"
# Type: string
redis2_docker_networks_alias: "{{ redis_name }}"
redis_role_docker_networks_defaultredis2_docker_networks_default
# Type: list
redis_role_docker_networks_default: []
# Type: list
redis2_docker_networks_default: []
redis_role_docker_networks_customredis2_docker_networks_custom
# Type: list
redis_role_docker_networks_custom: []
# Type: list
redis2_docker_networks_custom: []
Restart Policy
redis_role_docker_restart_policyredis2_docker_restart_policy
# Type: string
redis_role_docker_restart_policy: unless-stopped
# Type: string
redis2_docker_restart_policy: unless-stopped
State
redis_role_docker_stateredis2_docker_state
# Type: string
redis_role_docker_state: started
# Type: string
redis2_docker_state: started
User
redis_role_docker_userredis2_docker_user
# Type: string
redis_role_docker_user: "{{ uid }}:{{ gid }}"
# Type: string
redis2_docker_user: "{{ uid }}:{{ gid }}"
The following advanced options are available via create_docker_container but are not defined in the role. See: docker_container module
Resource Limits
redis_role_docker_blkio_weightredis2_docker_blkio_weight
# Type: int
redis_role_docker_blkio_weight:
# Type: int
redis2_docker_blkio_weight:
redis_role_docker_cpu_periodredis2_docker_cpu_period
# Type: int
redis_role_docker_cpu_period:
# Type: int
redis2_docker_cpu_period:
redis_role_docker_cpu_quotaredis2_docker_cpu_quota
# Type: int
redis_role_docker_cpu_quota:
# Type: int
redis2_docker_cpu_quota:
redis_role_docker_cpu_sharesredis2_docker_cpu_shares
# Type: int
redis_role_docker_cpu_shares:
# Type: int
redis2_docker_cpu_shares:
redis_role_docker_cpusredis2_docker_cpus
# Type: string
redis_role_docker_cpus:
# Type: string
redis2_docker_cpus:
redis_role_docker_cpuset_cpusredis2_docker_cpuset_cpus
# Type: string
redis_role_docker_cpuset_cpus:
# Type: string
redis2_docker_cpuset_cpus:
redis_role_docker_cpuset_memsredis2_docker_cpuset_mems
# Type: string
redis_role_docker_cpuset_mems:
# Type: string
redis2_docker_cpuset_mems:
redis_role_docker_kernel_memoryredis2_docker_kernel_memory
# Type: string
redis_role_docker_kernel_memory:
# Type: string
redis2_docker_kernel_memory:
redis_role_docker_memoryredis2_docker_memory
# Type: string
redis_role_docker_memory:
# Type: string
redis2_docker_memory:
redis_role_docker_memory_reservationredis2_docker_memory_reservation
# Type: string
redis_role_docker_memory_reservation:
# Type: string
redis2_docker_memory_reservation:
redis_role_docker_memory_swapredis2_docker_memory_swap
# Type: string
redis_role_docker_memory_swap:
# Type: string
redis2_docker_memory_swap:
redis_role_docker_memory_swappinessredis2_docker_memory_swappiness
# Type: int
redis_role_docker_memory_swappiness:
# Type: int
redis2_docker_memory_swappiness:
redis_role_docker_shm_sizeredis2_docker_shm_size
# Type: string
redis_role_docker_shm_size:
# Type: string
redis2_docker_shm_size:
Security & Devices
redis_role_docker_cap_dropredis2_docker_cap_drop
# Type: list
redis_role_docker_cap_drop:
# Type: list
redis2_docker_cap_drop:
redis_role_docker_cgroupns_moderedis2_docker_cgroupns_mode
# Type: string
redis_role_docker_cgroupns_mode:
# Type: string
redis2_docker_cgroupns_mode:
redis_role_docker_device_cgroup_rulesredis2_docker_device_cgroup_rules
# Type: list
redis_role_docker_device_cgroup_rules:
# Type: list
redis2_docker_device_cgroup_rules:
redis_role_docker_device_read_bpsredis2_docker_device_read_bps
# Type: list
redis_role_docker_device_read_bps:
# Type: list
redis2_docker_device_read_bps:
redis_role_docker_device_read_iopsredis2_docker_device_read_iops
# Type: list
redis_role_docker_device_read_iops:
# Type: list
redis2_docker_device_read_iops:
redis_role_docker_device_requestsredis2_docker_device_requests
# Type: list
redis_role_docker_device_requests:
# Type: list
redis2_docker_device_requests:
redis_role_docker_device_write_bpsredis2_docker_device_write_bps
# Type: list
redis_role_docker_device_write_bps:
# Type: list
redis2_docker_device_write_bps:
redis_role_docker_device_write_iopsredis2_docker_device_write_iops
# Type: list
redis_role_docker_device_write_iops:
# Type: list
redis2_docker_device_write_iops:
redis_role_docker_devicesredis2_docker_devices
# Type: list
redis_role_docker_devices:
# Type: list
redis2_docker_devices:
redis_role_docker_devices_defaultredis2_docker_devices_default
# Type: string
redis_role_docker_devices_default:
# Type: string
redis2_docker_devices_default:
redis_role_docker_groupsredis2_docker_groups
# Type: list
redis_role_docker_groups:
# Type: list
redis2_docker_groups:
redis_role_docker_privilegedredis2_docker_privileged
# Type: bool (true/false)
redis_role_docker_privileged:
# Type: bool (true/false)
redis2_docker_privileged:
redis_role_docker_security_optsredis2_docker_security_opts
# Type: list
redis_role_docker_security_opts:
# Type: list
redis2_docker_security_opts:
redis_role_docker_userns_moderedis2_docker_userns_mode
# Type: string
redis_role_docker_userns_mode:
# Type: string
redis2_docker_userns_mode:
Networking
redis_role_docker_dns_optsredis2_docker_dns_opts
# Type: list
redis_role_docker_dns_opts:
# Type: list
redis2_docker_dns_opts:
redis_role_docker_dns_search_domainsredis2_docker_dns_search_domains
# Type: list
redis_role_docker_dns_search_domains:
# Type: list
redis2_docker_dns_search_domains:
redis_role_docker_dns_serversredis2_docker_dns_servers
# Type: list
redis_role_docker_dns_servers:
# Type: list
redis2_docker_dns_servers:
redis_role_docker_domainnameredis2_docker_domainname
# Type: string
redis_role_docker_domainname:
# Type: string
redis2_docker_domainname:
redis_role_docker_exposed_portsredis2_docker_exposed_ports
# Type: list
redis_role_docker_exposed_ports:
# Type: list
redis2_docker_exposed_ports:
redis_role_docker_hostsredis2_docker_hosts
# Type: dict
redis_role_docker_hosts:
# Type: dict
redis2_docker_hosts:
redis_role_docker_hosts_use_commonredis2_docker_hosts_use_common
# Type: bool (true/false)
redis_role_docker_hosts_use_common:
# Type: bool (true/false)
redis2_docker_hosts_use_common:
redis_role_docker_ipc_moderedis2_docker_ipc_mode
# Type: string
redis_role_docker_ipc_mode:
# Type: string
redis2_docker_ipc_mode:
redis_role_docker_linksredis2_docker_links
# Type: list
redis_role_docker_links:
# Type: list
redis2_docker_links:
redis_role_docker_network_moderedis2_docker_network_mode
# Type: string
redis_role_docker_network_mode:
# Type: string
redis2_docker_network_mode:
redis_role_docker_pid_moderedis2_docker_pid_mode
# Type: string
redis_role_docker_pid_mode:
# Type: string
redis2_docker_pid_mode:
redis_role_docker_portsredis2_docker_ports
# Type: list
redis_role_docker_ports:
# Type: list
redis2_docker_ports:
redis_role_docker_utsredis2_docker_uts
# Type: string
redis_role_docker_uts:
# Type: string
redis2_docker_uts:
Storage
redis_role_docker_keep_volumesredis2_docker_keep_volumes
# Type: bool (true/false)
redis_role_docker_keep_volumes:
# Type: bool (true/false)
redis2_docker_keep_volumes:
redis_role_docker_mountsredis2_docker_mounts
# Type: list
redis_role_docker_mounts:
# Type: list
redis2_docker_mounts:
redis_role_docker_storage_optsredis2_docker_storage_opts
# Type: dict
redis_role_docker_storage_opts:
# Type: dict
redis2_docker_storage_opts:
redis_role_docker_tmpfsredis2_docker_tmpfs
# Type: list
redis_role_docker_tmpfs:
# Type: list
redis2_docker_tmpfs:
redis_role_docker_volume_driverredis2_docker_volume_driver
# Type: string
redis_role_docker_volume_driver:
# Type: string
redis2_docker_volume_driver:
redis_role_docker_volumes_fromredis2_docker_volumes_from
# Type: list
redis_role_docker_volumes_from:
# Type: list
redis2_docker_volumes_from:
redis_role_docker_volumes_globalredis2_docker_volumes_global
# Type: bool (true/false)
redis_role_docker_volumes_global:
# Type: bool (true/false)
redis2_docker_volumes_global:
redis_role_docker_working_dirredis2_docker_working_dir
# Type: string
redis_role_docker_working_dir:
# Type: string
redis2_docker_working_dir:
Monitoring & Lifecycle
redis_role_docker_auto_removeredis2_docker_auto_remove
# Type: bool (true/false)
redis_role_docker_auto_remove:
# Type: bool (true/false)
redis2_docker_auto_remove:
redis_role_docker_cleanupredis2_docker_cleanup
# Type: bool (true/false)
redis_role_docker_cleanup:
# Type: bool (true/false)
redis2_docker_cleanup:
redis_role_docker_force_killredis2_docker_force_kill
# Type: string
redis_role_docker_force_kill:
# Type: string
redis2_docker_force_kill:
redis_role_docker_healthcheckredis2_docker_healthcheck
# Type: dict
redis_role_docker_healthcheck:
# Type: dict
redis2_docker_healthcheck:
redis_role_docker_healthy_wait_timeoutredis2_docker_healthy_wait_timeout
# Type: int
redis_role_docker_healthy_wait_timeout:
# Type: int
redis2_docker_healthy_wait_timeout:
redis_role_docker_initredis2_docker_init
# Type: bool (true/false)
redis_role_docker_init:
# Type: bool (true/false)
redis2_docker_init:
redis_role_docker_kill_signalredis2_docker_kill_signal
# Type: string
redis_role_docker_kill_signal:
# Type: string
redis2_docker_kill_signal:
redis_role_docker_log_driverredis2_docker_log_driver
# Type: string
redis_role_docker_log_driver:
# Type: string
redis2_docker_log_driver:
redis_role_docker_log_optionsredis2_docker_log_options
# Type: dict
redis_role_docker_log_options:
# Type: dict
redis2_docker_log_options:
redis_role_docker_oom_killerredis2_docker_oom_killer
# Type: bool (true/false)
redis_role_docker_oom_killer:
# Type: bool (true/false)
redis2_docker_oom_killer:
redis_role_docker_oom_score_adjredis2_docker_oom_score_adj
# Type: int
redis_role_docker_oom_score_adj:
# Type: int
redis2_docker_oom_score_adj:
redis_role_docker_output_logsredis2_docker_output_logs
# Type: bool (true/false)
redis_role_docker_output_logs:
# Type: bool (true/false)
redis2_docker_output_logs:
redis_role_docker_pausedredis2_docker_paused
# Type: bool (true/false)
redis_role_docker_paused:
# Type: bool (true/false)
redis2_docker_paused:
redis_role_docker_recreateredis2_docker_recreate
# Type: bool (true/false)
redis_role_docker_recreate:
# Type: bool (true/false)
redis2_docker_recreate:
redis_role_docker_restart_retriesredis2_docker_restart_retries
# Type: int
redis_role_docker_restart_retries:
# Type: int
redis2_docker_restart_retries:
redis_role_docker_stop_timeoutredis2_docker_stop_timeout
# Type: int
redis_role_docker_stop_timeout:
# Type: int
redis2_docker_stop_timeout:
Other Options
redis_role_docker_capabilitiesredis2_docker_capabilities
# Type: list
redis_role_docker_capabilities:
# Type: list
redis2_docker_capabilities:
redis_role_docker_cgroup_parentredis2_docker_cgroup_parent
# Type: string
redis_role_docker_cgroup_parent:
# Type: string
redis2_docker_cgroup_parent:
redis_role_docker_commandsredis2_docker_commands
# Type: list
redis_role_docker_commands:
# Type: list
redis2_docker_commands:
redis_role_docker_create_timeoutredis2_docker_create_timeout
# Type: int
redis_role_docker_create_timeout:
# Type: int
redis2_docker_create_timeout:
redis_role_docker_entrypointredis2_docker_entrypoint
# Type: string
redis_role_docker_entrypoint:
# Type: string
redis2_docker_entrypoint:
redis_role_docker_env_fileredis2_docker_env_file
# Type: string
redis_role_docker_env_file:
# Type: string
redis2_docker_env_file:
redis_role_docker_labelsredis2_docker_labels
# Type: dict
redis_role_docker_labels:
# Type: dict
redis2_docker_labels:
redis_role_docker_labels_use_commonredis2_docker_labels_use_common
# Type: bool (true/false)
redis_role_docker_labels_use_common:
# Type: bool (true/false)
redis2_docker_labels_use_common:
redis_role_docker_read_onlyredis2_docker_read_only
# Type: bool (true/false)
redis_role_docker_read_only:
# Type: bool (true/false)
redis2_docker_read_only:
redis_role_docker_runtimeredis2_docker_runtime
# Type: string
redis_role_docker_runtime:
# Type: string
redis2_docker_runtime:
redis_role_docker_sysctlsredis2_docker_sysctls
# Type: list
redis_role_docker_sysctls:
# Type: list
redis2_docker_sysctls:
redis_role_docker_ulimitsredis2_docker_ulimits
# Type: list
redis_role_docker_ulimits:
# Type: list
redis2_docker_ulimits:
redis_role_autoheal_enabledredis2_autoheal_enabled
# Enable or disable Autoheal monitoring for containers created when deploying
# Type: bool (true/false)
redis_role_autoheal_enabled: true
# Enable or disable Autoheal monitoring for containers created when deploying
# Type: bool (true/false)
redis2_autoheal_enabled: true
redis_role_depends_onredis2_depends_on
# List of container dependencies that must be running before containers start
# Type: string
redis_role_depends_on: ""
# List of container dependencies that must be running before containers start
# Type: string
redis2_depends_on: ""
redis_role_depends_on_delayredis2_depends_on_delay
# Delay in seconds before starting containers after dependencies are ready
# Type: string (quoted number)
redis_role_depends_on_delay: "0"
# Delay in seconds before starting containers after dependencies are ready
# Type: string (quoted number)
redis2_depends_on_delay: "0"
redis_role_depends_on_healthchecksredis2_depends_on_healthchecks
# Enable healthcheck waiting for container dependencies
# Type: string ("true"/"false")
redis_role_depends_on_healthchecks:
# Enable healthcheck waiting for container dependencies
# Type: string ("true"/"false")
redis2_depends_on_healthchecks:
redis_role_diun_enabledredis2_diun_enabled
# Enable or disable Diun update notifications for containers created when deploying
# Type: bool (true/false)
redis_role_diun_enabled: true
# Enable or disable Diun update notifications for containers created when deploying
# Type: bool (true/false)
redis2_diun_enabled: true
redis_role_docker_controllerredis2_docker_controller
# Enable or disable Saltbox Docker Controller management for containers
# Type: bool (true/false)
redis_role_docker_controller: true
# Enable or disable Saltbox Docker Controller management for containers
# Type: bool (true/false)
redis2_docker_controller: true
redis_role_docker_image_reporedis2_docker_image_repo
# Type: string
redis_role_docker_image_repo:
# Type: string
redis2_docker_image_repo:
redis_role_docker_image_tagredis2_docker_image_tag
# Type: string
redis_role_docker_image_tag:
# Type: string
redis2_docker_image_tag:
redis_role_docker_volumes_downloadredis2_docker_volumes_download
# Type: bool (true/false)
redis_role_docker_volumes_download:
# Type: bool (true/false)
redis2_docker_volumes_download: