вложенные переменные в Заменить регулярное выражение Ansible [ошибка шаблонов - PullRequest
0 голосов
/ 08 января 2019

У меня есть следующая задача:

pre_tasks:
- name: Disable nodes from the load balancer
  replace:
    path: "/USR/{{ ansible_user }}/{{ apache_directory }}/conf.d/balancers.conf"
    regexp: 'BalancerMember.*{{ balancer_members.[item].http.[inventory_hostname].url }}.*'
    replace: '#BalancerMember.*{{ balancer_members.[item].http.[inventory_hostname].url }}.*'
  with_items:
    - "portail_cluster"
    - "portail_cluster_se"
    - "portail_cluster_pentaho"
    - "ws_cluster"
    - "portail_longtimeout"
    - "portail_core"
  delegate_to: groups.front
  register: result

при выполнении я получаю следующую ошибку:

TASK [Disable nodes from the load balancer] ********************************************************************************
task path: /USR/indus/work/etg-test/etg.file.deploy.app.yml:7
fatal: [sashimi2-pprod]: FAILED! => {
    "msg": "template error while templating string: expected name or number. String: #BalancerMember.*{{ balancer_members.[item].http.[inventory_hostname].url }}.*"
}
fatal: [wsashimi2-pprod]: FAILED! => {
    "msg": "template error while templating string: expected name or number. String: #BalancerMember.*{{ balancer_members.[item].http.[inventory_hostname].url }}.*"
}

Может кто-нибудь понять, что не так с этим синтаксисом? заранее спасибо ^ _ ^!

Ответы [ 2 ]

0 голосов
/ 10 января 2019

Я нашел проблему, это была проблема синтаксиса, я изменил текст. [Varibl] .text с текстом [variable] .text. Вот исправление:

 - name: Disable web nodes from the load balancer
      replace:
        path: "/USR/{{ ansible_user }}/{{ apache_directory }}/conf.d/balancers.conf"
        regexp: "^ *BalancerMember.*{{ balancer_members[item].http[inventory_hostname].url }}.*"
        replace: "    #BalancerMember {{ balancer_members[item].http[inventory_hostname].url }}"
      delegate_to: server-ip
0 голосов
/ 08 января 2019

Я считаю, что расширение переменных происходит только для строк, заключенных в "", а не для строк в ''.

Это кратко описано в Требуемая документация - YAML Gotchas

...