(Пов’язані з зворотними дзвінками або гачками, і ряд завдань, що використовуються повторно, у ролях Ansible ):
Чи є кращий спосіб додати до списку чи додати ключ до словника в Ansible, ніж (ab), використовуючи вираз шаблону jina2?
Я знаю, що ти можеш зробити щось на кшталт:
- name: this is a hack
shell: echo "{% originalvar.append('x') %}New value of originalvar is {{originalvar}}"
але чи немає насправді мета-завдання чи помічника для цього?
Він відчуває себе крихким, здається недокументованим, і спирається на безліч припущень про те, як працюють змінні в Ansible.
Мій випадок використання - це декілька ролей (розширення сервера баз даних), для кожного потрібно надати певну конфігурацію базовій ролі (сервер бази даних). Це не так просто, як додавання рядка до конфігураційного файлу сервера db; кожна зміна стосується одного і того ж рядка , наприклад розширення, bdr
і pg_stat_statements
обидва повинні відображатися на цільовій лінії
shared_preload_libaries = 'bdr, pg_stat_statements'
Чи є відповідним способом це зробити, щоб просто обробити файл конфігурації кілька разів (один раз за розширення) з регулярним виразом, який витягує поточне значення, аналізує його, а потім переписує? Якщо так, то як зробити цей ідентифікатор протягом кількох прогонів?
Що робити, якщо конфігурацію важче, ніж це для аналізу, і це не так просто, як додавання іншого значення, розділеного комами? Подумайте файли конфігурації XML.