ansible☞常用模块-文本文件操作

阅读量: zyh 2020-04-20 15:26:44
Categories: > Tags:

文本操作

file

path 文件对象地址
state 文件类型或者动作状态 (touch: 针对文件, directory:针对目录, link:针对软连接, hard:针对硬链接)

src 软硬链接的源文件

owner 属主

group 属组

mode 数字权限

recurse 递归操作

blockinfile

在指定位置,插入文本块,并在文本块开头和结尾添加标记. 标记用来确认文本块的位置,一些参数会通过标记位置来修改文本块。

注释格式:

# BEGIN xxx

# END xxx

参数简介:

path 文件对象地址

block 需要添加的文本块

marker 自定义标记 xxx 部分,如果存在相同标记,则优先处理相同标记的文本块。

state 状态为absent时,删除标记包括的文本块

insertafter 正则或者EOF,插入匹配的指定行之后

insertbefore 正则或者BOF,插入匹配的指定行之前

backup 先备份,再操作,备份文件后缀是时间戳

create 文件不存在,则创建

# 这条命令中,如果marker标记已经存在,则insertafter将无效
-m blockinfile -a 'path= block=" " marker="#{mark} xxx" insertafter="正则"'

lineinfile

根据指定的内容,进行替换或删除

参数简介:

path 文件对象地址。

line 指定行内容(在没有正则的情况下,需要全匹配)。

regexp 通过正则匹配行,并将此行替换成 line 指定的内容,regexp有额外扩展参数,例如 backref。

  • line 若line匹配到某行,则不修改,若无匹配,则添加line至末尾。

  • regexp + line 若有regexp匹配到某行,替换匹配行为line;如果没有匹配,则将line追加到行尾。此时,regexp不支持分组。

  • regexp + backrefs (true)+ line 若有regexp匹配到某行,替换匹配行为line;如果没有匹配,则保持源文件不变;此时,regexp支持分组。

state 状态为absent时,删除匹配行

insertafter 正则或者EOF,插入匹配的指定行之后

insertbefore 正则或者BOF,插入匹配的指定行之前

backup 先备份,再操作

create 文件不存在,则创建

-m lineinfile -a 'path= line=" " insertafter="正则"'

replace

替换文件对象中符合匹配的字符串

path 文件对象地址

regexp 正则匹配

replace 替换后的字符串

backup 先备份,再操作