Ansible Module lineinfile: Difference between revisions
(One intermediate revision by the same user not shown) | |||
Line 20: | Line 20: | ||
<font color=darkgray>TODO</font>. | <font color=darkgray>TODO</font>. | ||
=Use Cases= | =Use Cases= | ||
Line 62: | Line 52: | ||
upon the first execution, then the file will not be changes upon subsequent executions. | upon the first execution, then the file will not be changes upon subsequent executions. | ||
====Adjust a Line based on a Regular Expression==== | ====Adjust a Line based on a Regular Expression==== | ||
<syntaxhighlight lang='yaml'> | |||
- name: "Adjust Java version to {{ jdk.version }}" | |||
lineinfile: | |||
path: "{{ settings_path }}/settings.conf" | |||
regexp: '^JAVA_VERSION=' | |||
line: "JAVA_VERSION={{ jdk.version }}" | |||
</syntaxhighlight> |
Latest revision as of 04:47, 5 July 2021
External
Internal
Overview
The module is mainly used to look for or change a single line in a text file. A typical use case is to ensure that a particular line is in a file, based on a regular expression. Another case is to replace an existing line using a back-referenced regular expression.
Module Parameters
state
line (value)
The line to be inserted.
create
Used with state=present
. If "yes" os specified, the file will be created if it does not already exist. By default, the value is "no", so the module will fail if the file is missing.
insertafter
Used with state=present
. The specified line will be inserted after the last match of the regular expression presented as value of insertafter, or, if the regular expression is not provided, after EOF.
TODO.
Use Cases
Insert a Line to a Text File
- name: Insert a line into a file if it does not exist already
lineinfile:
path: test.txt
line: 'this is a line'
create: yes
The line will be inserted, but on subsequent executions, the file will not be changed anymore.
Append Lines to a Text File in a Loop
- name: Append lines to a text file
lineinfile:
path: test.txt
line: 'line {{ item }}'
create: yes
with_items:
- A
- B
- C
The result will be:
line A
line B
line C
upon the first execution, then the file will not be changes upon subsequent executions.
Adjust a Line based on a Regular Expression
- name: "Adjust Java version to {{ jdk.version }}"
lineinfile:
path: "{{ settings_path }}/settings.conf"
regexp: '^JAVA_VERSION='
line: "JAVA_VERSION={{ jdk.version }}"