O módulo lineinfile não está funcionando adequadamente com o dicionário de variáveis Ansible

Meu código está removendo todas as instâncias de variáveis de soquete no arquivo my.cnf e, em seguida, preenchendo novamente o arquivo com a variável e o local do arquivo corretos.

A parte de exclusão está funcionando corretamente, no entanto, a inserção é encerrada após a primeira linha. Portanto, ele inserirá a linha 'socket' correta diretamente em [mysqladmin], mas não será adicionada às seções restantes do arquivo.

- name: modify my.cnf setting
  hosts: dbservers
  remote_user: dbuser
  become: yes

  tasks:
  - name: delete old socket definitions
    lineinfile:
      dest: /etc/mysql/my.cnf
      regexp: "^socket "
      state: absent

  - name: add new socket variable
    lineinfile:
      dest: /etc/mysql/my.cnf
      line: "{{ item.line }}"
      insertafter: "{{ item.insertafter }}"
    with_items:
      - { line: 'socket = /mysql/run/mysqld.sock', insertafter: '^\[mysqladmin\]' }
      - { line: 'socket = /mysql/run/mysqld.sock', insertafter: '^\[mysql\]' }
      - { line: 'socket = /mysql/run/mysqld.sock', insertafter: '^\[mysqldump\]' }
      - { line: 'socket = /mysql/run/mysqld.sock', insertafter: '^\[mysqld\]' }

Em uma nota adicional, eu gostaria que houvesse uma linha de espaço entre o cabeçalho e a nova declaração de soquete, se isso for possível.

Eu tentei com a versão 2.0.2 e 2.2.0 e nenhum deles está se comportando como planejado.

questionAnswers(2)

yourAnswerToTheQuestion