Как заменить заполнители в шаблоне другими заполнителями - PullRequest
0 голосов
/ 24 января 2019

Вот мой шаблон, содержащий некоторые заполнители для замены:

{{ __PLACEHOLDER1__ }} to test.
{{ __PLACEHOLDER2__ }} to test.
{{ __PLACEHOLDER3__ }} to test.

Вот файл yaml, который содержит значения для этих заполнителей:

__PLACEHOLDER1__: placeholder replaced 1
__PLACEHOLDER2__: placeholder replaced 2
__PLACEHOLDER3__: placeholder replaced 3

Наконец, вот моя пьеса:

- hosts: localhost
  become: true
  become_method: sudo
  become_user: "{{ deployer }}"

  vars:
    ansible_become_pass: "{{ deployer_pass }}"
    root_dir: "."

  vars_files:
    - "{{ deployer_sec }}"
    - "{{ placeholder_vals }}"

  tasks: 
    - name: 'Grab files with placeholders in {{ root_dir }}'
      find:
        pattern: "*.template"
        path: "{{ root_dir }}"
        recurse: yes
      register: files_with_placeholders
    - name: 'Replace placeholders'
      template:
        src: "{{ item.path }}"
        dest: "{{ (item.path | splitext)[0] }}"
      with_items: "{{ files_with_placeholders.files }}"

Пока все хорошо ... но что, если бы у меня был такой шаблон:

{{ PLACEHOLDER1 }} to test.
{{ PLACEHOLDER2 }} to test.
{{ PLACEHOLDER3 }} to test.

Перед запуском моей книги воспроизведения мне нужно было преобразовать заполнители в шаблоне, чтобы они соответствовали переменным, определенным в файле yaml:

{{ PLACEHOLDER1 }} should become {{ __PLACEHOLDER1__ }}
{{ PLACEHOLDER2 }} should become {{ __PLACEHOLDER1__ }}
{{ PLACEHOLDER3 }} should become {{ __PLACEHOLDER1__ }}

Как заменить оригинальные заполнители новыми заполнителями до обработки шаблона?

...