Ansible escaping double quotes and single quotes

19,153

It's a bug in lineinfile module.

The correct syntax from YAML point of view is following (but it will work, only when bug is fixed). You should escape only two characters " and \ in double-quoted literals:

line: "command[SERVICE_tomcat_Threads_pi]=/appiu/monitoring/check_tomcat_threads.pl -H localhost -p 30011 -C '\"http-bio-30011\"' -w 200 -c 50"

To temporarily workaround it, you can use:

line: 'command[SERVICE_tomcat_Threads_pi]=/appiu/monitoring/check_tomcat_threads.pl -H localhost -p 30011 -C \''"http-bio-30011"\'' -w 200 -c 50'
Share:
19,153

Related videos on Youtube

Georg Gutsche
Author by

Georg Gutsche

Updated on July 20, 2022

Comments

  • Georg Gutsche
    Georg Gutsche 5 months

    I would like insert a nrpe command in the nrpe.cfg with this ansible command

    check_tomcat_threads.pl -H localhost -p 30011 -C '"http-bio-30011"' -w 200 -c 50
    

    But the the problem are the '" and "'

    To set this line in the nrpe.cfg use the command

     - { regexp: '^command\[SERVICE_tomcat_pi_Threads\]', line: "command[SERVICE_tomcat_Threads_pi]=/appiu/monitoring/check_tomcat_threads.pl -H localhost -p 30011 -C '\"http-bio-30011\"' -w 200 -c 50" }
    

    but the result in the nrpe.cfg is

    ...-C http-bio-30011..
    

    If I use ''\"http-bio-30011\"'' in the ansible script

    the result in the nrpe.cfg is

    ...-C "http-bio-30011"... 
    

    How I can escaping the single quotes and the double quotes to get this -C '"http-bio-30011"'?

    Greetings Georg

    • Yaroslav Admin about 7 years
      If answer helped you, it's good thing to accept it.

Related