Как я могу добиться следующего в недоступном? Я хочу запустить несколько lineinfile в списке серверов.Запустить несколько команд lineinfile с with_items
Если я делаю следующее, анзибль жалуется из-за неоднократного lineinfile
- name: ensure /etc/environment is correct
tags: env
with_items: "{{ hosts }}"
lineinfile: dest=/etc/environment regexp=^PROFILE=line=PROFILE={{prof}}
lineinfile: dest=/etc/environment regexp=^OTHER=line=OTHER={{other}}
Я попытался гнезда with_items
безрезультатно.
Опишите, что означает 'groups ['app']' в вашем примере? Для запуска задачи в списке серверов в недоступном вам используется параметр 'hosts:' для воспроизведения. Для запуска той же задачи с разными параметрами вы используете 'with_items:' и '{{item}}' placeholder в параметрах своей задачи. Если вы хотите вложенные циклы (например, изменить несколько разных строк для некоторых разных приложений в файле), вы используете 'with_nested:' [docs] (http://docs.ansible.com/ansible/playbooks_loops.html#nested-loops) , В любом случае имя задачи ('lineinfile' в вашем примере) всегда указывается только один раз. –
@ KonstantinSuvorov вместо 'groups [app]' это может быть 'hosts'. Я хочу запустить * несколько похожих задач * в списке серверов. Мне не повезло с помощью 'with_nested', можете ли вы привести пример в этом случае? –
'lineinfile' - это анти-шаблон. Вы должны рассмотреть «шаблон». – tedder42