I wish to match all lines that begin with SSLFile or <whitespace>SSLFile in 
a file httpd.conf on a remote server and store the matched found strings in 
a variable for use later in the playbook.

Below is what i did.

    - name: Find entries 
      shell: "cat /tmp/httpd.conf"
      register: filecontent

    - name: Debug filecontentvar
      debug:
        msg: "{{ filecontent  }}"

    - name: Find certificate entries
      set_fact:
        target: "{{ filecontent.stdout | regex_replace('\\sSSLFile.*, 
'\\1') }}"

Using debug verbose I was able to confirm that the filecontent variable 
gets the contents of the httpd.conf file of the remote host.

However, the variable called "target" does not get matched lines for 
searched string despite it being present and errors as below:

TASK [Find certificate entries] ***************************************
>
> *task path: /app/test.yml:906*The full traceback is:
> Traceback (most recent call last):
> File "/usr/lib/python2.7/site-packages/ansible/executor/task_executor.py", 
> line 144, in run
> res = self._execute()
> File "/usr/lib/python2.7/site-packages/ansible/executor/task_executor.py", 
> line 576, in _execute
> self._task.post_validate(templar=templar)
> File "/usr/lib/python2.7/site-packages/ansible/playbook/task.py", line 
> 268, in post_validate
> super(Task, self).post_validate(templar)
> File "/usr/lib/python2.7/site-packages/ansible/playbook/base.py", line 
> 384, in post_validate
> value = templar.template(getattr(self, name))
> File "/usr/lib/python2.7/site-packages/ansible/template/__init__.py", line 
> 584, in template
> disable_lookups=disable_lookups,
> File "/usr/lib/python2.7/site-packages/ansible/template/__init__.py", line 
> 539, in template
> disable_lookups=disable_lookups,
> File "/usr/lib/python2.7/site-packages/ansible/template/__init__.py", line 
> 773, in do_template
> data = _escape_backslashes(data, myenv)
> File "/usr/lib/python2.7/site-packages/ansible/template/__init__.py", line 
> 145, in _escape_backslashes
> for token in jinja_env.lex(d2):
> File "/usr/lib/python2.7/site-packages/jinja2/lexer.py", line 733, in 
> tokeniter
> name, filename)
> TemplateSyntaxError: unexpected char u'\\' at 64
> line 1 fatal: [10.9.9.11]: FAILED! => {
> "msg": "Unexpected failure during module execution.", 
> "stdout": ""
> }


I used https://regex101.com to confirm that my \sSSLFile.* condition is 
good and returns matches on my httpd.conf file.

Can you please suggest ?

-- 
You received this message because you are subscribed to the Google Groups 
"Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to ansible-project+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/34cd7e11-6830-4b19-81c3-7a2d4731a0db%40googlegroups.com.

Reply via email to