Hello all, 

I am currently looking at a quote issue in an ansible nested variable and i 
cannot get it clear why it is not working. Can you help me out?


Some details: 
hostname: 
x55-n12

I want to get the first value (x55) with a regular expression: 
(.*?)(?=\-)

and place this value in a file called rack.

Ansible task file:
---
- include_vars: default.yml

- name: 'Place files'
  template: >
    src={{ item.src }}
    dest={{ item.dest }}
    owner=root group=root mode=0644
  with_items:
    - { src: klaas/attributes/rack.j2 , dest: "/klaas/attributes/rack"}
  register: klaasconfig

- name: Remove latest file and restart
  file: directory=/tmp/klaas/meta/slaves/latest/ state=absent
  when: klaasconfig.changed
  notify: restart klompendans
***

rack.j2 file: 
{{ rack }}

***
default.yml file: 
---
firewalld_zone: kees
rack: "{{ ansible_hostname | regexp_replace(.*?)(?=\-) }}"


**** 
Now the error: 

Note: The error may actually appear before this position: line 8, column 52

firewalld_zone: kees
rack: "{{ ansible_hostname | regexp_replace(.*?)(?=\-) }}"
                                                   ^
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 }}"



***

According to my git commits I have changed the regex to (and a couple more, 
but it shows i do not know how to handle this regex): 
rack: {{ ansible_hostname | regexp_replace(.*?)(?=\-) }}
rack: {{ ansible_hostname | regexp_replace"(.*?)(?=\-)" }}
rack: "{{ ansible_hostname | regexp_replace('(.*?)(?=\-)') }}"
rack: {{ ansible_hostname | regexp_replace('(.*?)(?=\-)') }}
rack: "{{ ansible_hostname | regexp_replace((.*?)(?=\-)) }}"


The regex 'should' work because i have tried it a couple of times with sed 
and python/javascript 


Thanks so much for helping!

Rogier

-- 
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 post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/dbaec58f-3833-40a8-ab41-a1d597ee94df%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to