Если есть некий шаблон, который например поставили из пакета, и нужно заменить в нём переменные, есть 3 варианта
1) самый корявый, через lineinfile, blockinfile или replace
2) Более правильный, через syncronize или fetch выкачиваем локально и прогоняем через template
3) прогоняем in-place через шаблонизатор jinja2, который ставится отдельно на сам хост, и envsubst
https://unix.stackexchange.com/questions/294378/replacing-only-specific-variables-with-envsubst
По 2 будет выглядеть примерно так
- name: Setup kamailio dispatcher, fetch config to ansible host
fetch:
src: /etc/kamailio/dispatcher.list.template
dest: /tmp/{{ ansible_hostname }}.dispatcher.list
flat: yes
- name: fill it
template:
src: /tmp/{{ ansible_hostname }}.dispatcher.list
dest: /etc/kamailio/dispatcher.list
- name: clean after fetch
file:
path: /tmp/{{ ansible_hostname }}.dispatcher.list
state: absent
(хотя тут еще правильнее завернуть в block и переместить очистку в секцию always:)
Комментариев нет:
Отправить комментарий