The Request Metrics application will use Redis as its main data store. We need to install Redis on our servers to find out if this is a good plan. Ansible provides a repeatable way of doing this configuration work.
Redis setup takes more steps than just apt-get install redis
. Because we really don’t want to learn all the necessary steps, we turn to pre-built role written by David Wittman.
Download Redis Roles With Galaxy
Redis roles are shared through Ansible Galaxy. The davidwittman.redis role is downloaded by running Galaxy from the CLI:
> ansible-galaxy install davidwittman.redis
There is one problem with the above command: it downloads the role to a system wide, shared location. Each developer needs to run the above command before running the playbook. We like our repositories to be standalone when possible. A slightly modified command saves the role locally. This lets us commit it to git:
> ansible-galaxy install davidwittman.redis -p ./roles
Install Redis
Now that the role is downloaded, it can be called from our playbook. The include_role
module works well because it packages everything up into a single, self contained task:
--- - hosts: redisHosts tasks: # Install Redis Using davidwittman.redis Role - name: Install single node redis # We will want master/slave or clustering in production vars: redis_version: 5.0.7 # We want new Redis hotness redis_port: 6379 # 6379 is the default port, but we like to be explicit redis_bind: 127.0.0.1 # Tells Redis to only accept requests from localhost include_role: name=davidwittman.redis
And we’re done! A bunch of time was saved by using an Ansible Galaxy role written by a stranger on the internet. Next, we’ll code up the Request Metrics application to connect to our fresh Redis instance.