Not undestanding exactly what you want to achieve...
For the syntax error you forgot a quote
So instead of this
target: "{{ input | regex_replace('\\sSSLFile.*, '\\1') }}"
You need this
target: "{{ input | regex_replace('\\sSSLFile.*' , '\\1') }}"
Regards,
Le 15 janvier 2020 08:59:32 GMT+01:00, Shifa Shaikh <[email protected]> a
écrit :
>Reading the contents of the file is not the challenge. I used both
>sllurp
>as well as cat and I can see the file contents in the debug. The error
>occurs when I regex for the desired string.
>
> - name: Slurp certificate entries
> slurp:
> src: "{{ httpd_home }}/conf/httpd.conf"
> register: filecontent
>
> - name: Find certificate entries
> set_fact:
> input: "{{ filecontent['content'] | b64decode }}"
>
> - debug:
> msg: "{{ input }}"
>
> - name: Regex String
> set_fact:
> target: "{{ input | regex_replace('\\sSSLFile.*, '\\1') }}"
>
>
>The regex task fails where we are assigning the set_fact "target" with
>the
>below error:
>
>TASK [Regex String] ***************************************
>>
>> *task path: /app/test.yml:908*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 51
>> line 1 fatal: [10.9.9.11]: FAILED! => {
>> "msg": "Unexpected failure during module execution.",
>> "stdout": ""
>> }
>
>
>On Wednesday, January 15, 2020 at 12:04:52 PM UTC+5:30, Jean-Yves
>LENHOF
>wrote:
>>
>> Hi,
>>
>> Perhaps you should better use slurp module to register the content of
>the
>> file and do some regexp to print what you want on it...
>>
>>
>>
>https://docs.ansible.com/ansible/latest/modules/slurp_module.html#slurp-module
>>
>> Regards,
>>
>>
>> Le 15/01/2020 à 06:34, Shifa Shaikh a écrit :
>>
>> I wish to search for all entries of string starting with "SSLFile" or
>
>> starting with "<whitespache>SSLFile" in a file(httpd.conf) and
>register
>> it to a variable and print all the matches found.
>>
>> The string is found as evident from the output and the file is not
>> modified which is good; but I'm unable to print (debug) it. I get
>error as
>> I try to print. Below is my playbook:
>>
>> - name: Find entries
>> lineinfile:
>> path: "/tmp/httpd.conf"
>> regexp: "\\sSSLFile.*"
>> state: absent
>> check_mode: yes
>> changed_when: false
>> register: filedet
>>
>> - debug:
>> msg: "{{ filedet }}"
>>
>> - debug:
>> msg: "{{ item.split()[1] }}"
>> with_items:
>> - "{{ filedet.stdout_lines }}"
>>
>> I get the below error when i run the playbook:
>>
>>
>> ok: [10.9.9.11] => {
>>> "backup": "",
>>> "changed": false,
>>> "diff": [
>>> {
>>> "after": "",
>>> "after_header": "/tmp/httpd.conf (content)",
>>> "before": "",
>>> "before_header": "/tmp/httpd.conf (content)"
>>> },
>>> {
>>> "after_header": "/tmp/httpd.conf (file attributes)",
>>> "before_header": "/tmp/httpd.conf (file attributes)"
>>> }
>>> ],
>>> "found": 1,
>>> "invocation": {
>>> "module_args": {
>>> "attributes": null,
>>> "backrefs": false,
>>> "backup": false,
>>> "content": null,
>>> "create": false,
>>> "delimiter": null,
>>> "directory_mode": null,
>>> "firstmatch": false,
>>> "follow": false,
>>> "force": null,
>>> "group": null,
>>> "insertafter": null,
>>> "insertbefore": null,
>>> "line": null,
>>> "mode": null,
>>> "owner": null,
>>> "path": "/tmp/httpd.conf",
>>> "regexp": "\\sSSLFile.*",
>>> "remote_src": null,
>>> "selevel": null,
>>> "serole": null,
>>> "setype": null,
>>> "seuser": null,
>>> "src": null,
>>> "state": "absent",
>>> "unsafe_writes": null,
>>> "validate": null
>>> }
>>> },
>>> "msg": "1 line(s) removed"
>>> } TASK [debug]
>>> *******************************************************************
>>>
>>> *task path: /app/test.yml:924 *ok: [10.9.9.11] => {
>>> "msg": {
>>> "backup": "",
>>> "changed": false,
>>> "diff": [
>>> {
>>> "after": "",
>>> "after_header": "/tmp/httpd.conf (content)",
>>> "before": "",
>>> "before_header": "/tmp/httpd.conf (content)"
>>> },
>>> {
>>> "after_header": "/tmp/httpd.conf (file attributes)",
>>> "before_header": "/tmp/httpd.conf (file attributes)"
>>> }
>>> ],
>>> "failed": false,
>>> "found": 1,
>>> "msg": "1 line(s) removed"
>>> }
>>> } TASK [debug]
>>> *******************************************************************
>>>
>>> *task path: /app/test.yml:928 *fatal: [10.9.9.11]: FAILED! => {
>>> "msg": "'dict object' has no attribute 'stdout_lines'"
>>> }
>>
>> Can you please suggest what is the correct way to print all the
>searched
>> matched strings without modifying the file ? I wish to use the the
>> registered variable to perform other actions later in the playbook.
>> --
>> 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 [email protected] <javascript:>.
>> To view this discussion on the web visit
>>
>https://groups.google.com/d/msgid/ansible-project/47deda2a-1a8c-4387-9a5b-d2ea548ad752%40googlegroups.com
>
>>
><https://groups.google.com/d/msgid/ansible-project/47deda2a-1a8c-4387-9a5b-d2ea548ad752%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>>
>
>--
>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 [email protected].
>To view this discussion on the web visit
>https://groups.google.com/d/msgid/ansible-project/790b6d70-a7bb-4465-b802-982f8fe05366%40googlegroups.com.
--
Envoyé de mon appareil Android avec Courriel K-9 Mail. Veuillez excuser ma
brièveté.
--
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 [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/ansible-project/7F8B69DC-C9EE-4218-9A64-C2CDA0CAEC99%40lenhof.eu.org.