Greeting!
Asked it on
stackoverflow, but didn't get an answer, so I'm trying my luck here.
A bit condensed version:
I'm trying to write a role that creates a Redis cluster. At some point I must execute redis-cli binary with some parameters:
I pass all the required parameters as extra variables when I call the playbook with a shell script:
#!/bin/sh
ansible-playbook /etc/ansible/playbook-redis.yml -vv \
--extra-vars='redis_admin_user=admin redis_admin_password=mypass' \
At first I tried the following:
- name: Create Redis cluster
ansible.builtin.command:
argv:
- /usr/bin/redis-cli
- "--user {{ redis_admin_user }}"
- "--pass {{ redis_admin_password }}"
- "--cluster create {{ redis_cluster_members }}"
- "--cluster-replicas {{ redis_cluster_replicas }}"
- --cluster-yes
And got error
"Unrecognized option or bad number of args for: '--user admin'" which is a redis-cli error.
After some experimenting I found out that if I pass the variables in a separate line some of them work. So this task works and returns info about server.
- name: Get server info
ansible.builtin.command:
argv:
- /usr/bin/redis-cli
- --user
- "{{ redis_admin_user }}"
- --pass
- "{{ redis_admin_password }}"
- info
So the username and password are recognized be redis-cli, but, unfortunately not the
"redis_cluster_members". The following task:
- name: Create Redis cluster
ansible.builtin.command:
argv:
- /usr/bin/redis-cli
- --user
- "{{ redis_admin_user }}"
- --pass
- "{{ redis_admin_password }}"
- --cluster create
- "{{ redis_cluster_members }}"
- --cluster-replicas
- "{{ redis_cluster_replicas }}"
- --cluster-yes
returns error
"Unrecognized option or bad number of args for: '--cluster create'"
I wonder if I'm missing some syntax error or misread the documentation and trying to use argv not the way it's supposed to be used?