mplachter.aerospike
Ansible Role: Aerospike
This Ansible role installs and sets up Aerospike on CentOS (versions 6 and 7) and Debian (Jessie and Wheezy) Linux.
Requirements
- Ansible 2.3 or higher
- CentOS version 6 or higher
- Debian versions Wheezy or Jessie
Role Variables
Here are the available variables, along with their default values (see defaults/main.yml):
aerospike_boot_enabled: true
This controls whether Aerospike starts automatically when the server boots.aerospike_version: 4.0.0.1
This specifies the version of the Aerospike server. For a full list, check Aerospike releases.aerospike_source_directory: /usr/local/src
This sets the expected name of the unzipped Aerospike directory.aerospike_log_location: /var/log/aerospike
This defines where the Aerospike logs are stored (currently only supports a single log file named aerospike.log). For more details, see Aerospike Logging Guide.aerospike_cluster_size: 1
This specifies the number of nodes expected in the Aerospike server cluster.
Optional Variables
You can set these variables to change their default values:
aerospike_proto_fd_max: 15000
This is the maximum number of open file connections for clients. Refer to proto-fd-max Docs.aerospike_proto_fd_idle_ms: 60000
This is the time in milliseconds to wait before closing inactive connections. For more, see proto-fd-idle-ms Docs.aerospike_access_address: "{{ ansible_default_ipv4.address }}"
This is the IP address used by clients to connect to the cluster. More details can be found in access-address Docs.
Using a Managed Configuration File
All defaults below apply to a managed configuration file.
- aerospike_namespaces:
This controls the namespace configuration of the Aerospike server. For details, see Aerospike namespace configuration.
You can define multiple namespaces using file, memory, or device storage engines.
NOTE: AEROSPIKE 4.0.0.1 ONLY ALLOWS 2 NAMESPACES PER CLUSTER.
Example configuration for 3 namespaces:
aerospike_namespaces:
- name: device_objects
memory_size: 8
storage_engine:
devices:
- /dev/sdb
- /dev/dsc
scheduler_mode: noop
write_block_size: 128K
- name: file_objects
storage_engine:
files:
- /opt/aerospike/data/1
- /opt/aerospike/data/2
data_in_memory: true
- name: memory_objects
For more on storage engines, check Aerospike Storage Engines Docs.
NOTE: AEROSPIKE 4.0.0.1 ONLY ALLOWS 2 NAMESPACES PER CLUSTER.
Other variable settings:
aerospike_service_threads: 4
This controls the number of threads that receive client requests over the network. See service-threads Docs.aerospike_transaction_queues: 4
This sets the number of transaction queues for managing client requests. See transaction-queues Docs.aerospike_transaction_threads: 4
This sets the number of threads for each transaction queue that consume the requests. See transaction-threads Docs.aerospike_mesh_seed_addresses:
This controls the mesh addresses of all nodes in the heartbeat cluster. It only applies when the node is mesh. See mesh-seed-address-port Docs.aerospike_multicast_group: 239.1.99.2
aerospike_multicast_port: 9918
aerospike_multicast_address: 10.100.10.101
You can also configure a multicast heartbeat cluster. If a multicast group is defined, it takes priority over aerospike_mesh_seed_addresses
. See multicast-group Docs and multicast heartbeat Docs.
Role Dependencies
None.
Example Playbook
---
- hosts: all
roles:
- mplachter.aerospike
Testing
This role has been tested using Molecule.
License
MIT
Author Information
Matt Plachter
Ansible role to install and configure Aerospike on CentOS (6/7) and Debian (Jessie/Wheezy) Linux.
ansible-galaxy install mplachter.aerospike