inserir dados em uma seção particular de um arquivo de configuração com ansible

2

Eu me deparei com um problema peculiar enquanto usava ansible. O problema é muito estranho e perigoso. Eu escrevi um código para inserir dados em uma seção específica de um arquivo, ou seja, para adicionar linha após [database] em /etc/cinder/cinder.conf .

O problema é que eu notei que às vezes ele adiciona o conteúdo corretamente após a tag [database] , mas às vezes fica confuso ao ver uma linha como # put ur infore here for [database] no arquivo e adiciona nossa linha obrigatória abaixo dela em vez de onde deveria realmente coloque isso.

   - name: Adding Entries in "/etc/cinder/cinder.conf"
     lineinfile:
      dest: "/etc/cinder/cinder.conf"
      insertafter:  "{{ item.inserts }}"
      state: present
      line: "{{ item.lines }}"
     with_items:
      - { inserts: '\[database\]', lines: 'rpc_backend = rabbit' }

Esta situação é bastante perigosa em um ambiente de produção! Como posso adicionar os dados corretamente?

    
por Mohd 25.06.2017 / 14:57

1 resposta

4

Para evitar a correspondência em um comentário, ancore seu regexp no início da linha:

- { inserts: '^\[database\]', lines: 'rpc_backend = rabbit' }
    
por 25.06.2017 / 15:24