ehuck
ehuck

Reputation: 73

Ansible Lineinfile insert after syntax issues

Having some issues with my code and can't figure out the syntax error.

I'm trying to take output from a firewall and put it into an html file but i keep getting stuck. The command in its own separate file outputs a couple of lines of text. Note destination changed to protect it.

- hosts: firewall
  gather_facts: no
  tasks:

  - name: Hardware Info
    raw: show asset all
    register: output

  - local_action: lineinfile dest=dest destination regexp="{{item}}" insertafter="test" line={{item}} 
    with_items: output.stdout_lines

Error:

  • local_action: lineinfile dest=dest insertafter="test" line='{{item}}' ^ here We could be wrong, but this one looks like it might be an issue with missing quotes. Always quote template expression brackets when they start a value. For instance:

    with_items:

    • {{ foo }}

Should be written as:

with_items:
  - "{{ foo }}"

Upvotes: 0

Views: 919

Answers (1)

300D7309EF17
300D7309EF17

Reputation: 24573

Change this line:

- local_action: lineinfile dest=dest destination regexp="{{item}}" insertafter="test" line={{item}} 

To this:

- local_action: lineinfile dest=dest destination regexp="{{item}}" insertafter="test" line="{{item}}"

The extra quotes should help.

Note lineinfile is terrible from a configuration management point of view, I predict you'll pull your hair out in the future.

Upvotes: 0

Related Questions