2016-10-19 2 views
1

Я хотел бы добавить некоторые строки в несколько файлов .conf в каталоге, например. /etc/abc/xabc/.добавить несколько строк в несколько файлов в каталоге, используя ansible

Две линии я хотел бы добавить ниже:

Composite=1 
Extension=1 

Я хотел бы эти строки появляться после строки, содержащей [protocol].

Как это сделать?

Я не уверен, как действовать дальше; увидеть мою попытку ниже - хотя я знаю, что это ошибочный:

- name: add line 

- lineinfile: 
    dest: "{{ item }}" 
    regexp: "{{ item.regexp }}" 
    line: "{{ item.line }}" 
    insertafter: [Protocol] 
    with_items: xxxxxx 

Я полагаю, я должен также зарегистрировать выход (/etc/abc/xabc/) каталога?

ответ

2

Во-первых, это выглядит, как вы хотите редактировать INI файлы, поэтому модуль гораздо более уместно:

- ini_file: 
    dest: /path/to/destination/file.ini 
    section: Protocol 
    option: "{{ item.option }}" 
    value: "{{ item.value }}" 
    with_items: 
    - { option: Composite, value: 1 } 
    - { option: Extension, value: 1 } 

Во-вторых, похоже, что вы хотите использовать вложенный цикл. Для ясности я бы включил файл во внешнем цикле над файловым элементом целевого каталога и выполнил конфигурацию во включенном файле. Например, inner_loop.yml:

- ini_file: 
    dest: "{{ destination_file }}" 
    section: Protocol 
    option: "{{ item.option }}" 
    value: "{{ item.value }}" 
    with_items: 
    - { option: Composite, value: 1 } 
    - { option: Extension, value: 1 } 

и внешний:

- include: inner_loop.yml 
    with_fileglob: 
    - /etc/abc/xabc/* 
    loop_control: 
    loop_var: destination_file 

This answer предлагает другое возможное решение для объединения петли на элементы с петлей над Глобо.

Смежные вопросы