Is it possible to use variables on command
or shell
modules?
I have the following code, and I would like to use variable file to provide some configurations:
I would like to read the Hadoop version from my variables file. On other modules of ansible I could use {{ansible_version}}
, but with command or shell it doesn't works.
- name: start ZooKeeper HA
command: hadoop-2.7.1/bin/hdfs zkfc -formatZK -nonInteractive
- name: start zkfc
shell: hadoop-2.7.1/sbin/hadoop-daemon.sh start zkfc
I would like to convert to the following:
- name: Iniciar zkfc
command: {{ hadoop_version }}/sbin/hadoop-daemon.sh start zkfc
Because if I run the with this syntax it throws this error:
- name: inicializar estado ZooKeeper HA
command: {{hadoop_version}}/bin/hdfs zkfc -formatZK -nonInteractive
^ here
We could be wrong, but this one looks like it might be an issue with
missing quotes. Always quote template expression brackets when they
start a value. For instance:
with_items:
- {{ foo }}
Should be written as:
with_items:
- "{{ foo }}"
I have try using, but same problem:
- name: Iniciar zkfc
command: "{{ hadoop_version }}"/sbin/hadoop-daemon.sh start zkfc
What is the correct syntax?
I have done below steps to replacing the inventory hostname in ansible shell module
- name: 'Task-10 Modif the splunk input.conf file with Actual hostname'
become: yes
become_method: sudo
become_user: root
shell: |
/splunk/splunkforwarder/bin/splunk enable boot-start --accept-license --answer-yes --no-prompt -user splunk
declare wfqdn
wfqdn=$(uname -n)
sed -i "s/$wfqdn/"{{ inventory_hostname }}"/g" /splunk/splunkforwarder/etc/system/local/inputs.conf
tags:
- always
The Main play is :
sed -i "s/$wfqdn/"{{ inventory_hostname }}"/g" /splunk/splunkforwarder/etc/system/local/inputs.conf
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With