insert multiple lines at a particular location within a file

I’m looking for a reasonable way to insert a block of lines into a certain position within a file hopefully ‘without’ needing to template the destination file.

I have a config file that I need to insert multiple lines into.

[SectionA]
… many lines below here …
[SectionB]
… many more lines below here…
[SectionC]
… and so on…

What I’m trying to do is insert a block of lines just above the ‘SectionB’ line.

[SectionA]
… many lines below here …

[[subsectionX]]
HTML_ROOT = /path/here
[[subsectionY]]
HTML_ROOT = /path/here

[SectionB]
… many more lines below here…
[SectionC]

… and so on…

I tried a ‘with_items’ approach ala:

  • name: insert the lines
    lineinfile: dest=/config/file/path line=“{{ item }}” insertbefore=‘[SectionB]’
    with_items:
  • " [[subsectionX]]"
  • " HTML_ROOT = /path/here"
  • " [[subsectionY]]"
  • " HTML_ROOT = /path/here"

This struck me as a bit of a kludge, and it failed anyway as ansible only adds the first 'HTML_ROOT =" line into the file, and does not add the second one (being a little too smart for its own good)

Is there a preferred way to do this kind of stuff ?