首页 > 其他分享 >12.ansible lineinfile模块

12.ansible lineinfile模块

时间:2022-09-19 11:22:25浏览次数:79  
标签:12 匹配 name lineinfile 插入 ansible line root

前言:
lineinfile模块,功能有点类似sed
常用功能:对文件的行替换、插入、删除

PS:

替换/插入:如果有重复的,都是匹配最后一个 ,
如果不加backrefs项, 替换/插入如无匹配者,则将line所指定的行插入到文件的末尾
删除:如果有重复的,全部删除

常用参数:

path/dest:  目标文件绝对路径+文件名,必须参数
line:        替换/插入的内容
regexp:      待匹配内容
insertbefore:   匹配行前面插入 
insertafter:    匹配行面插入 
state:    删除匹配行,需要将值设为absent,默认值present。 
backup:   是否在修改文件之前对文件进行备份。 yes/no
create:   当要操作的文件并不存在时,是否创建对应的文件。yes/no
backrefs:yes/no
1.backrefs为no时,如果没有匹配,则添加一行line。如果匹配了,则把匹配内容替被换为line内容。
2.backrefs为yes时,如果没有匹配,则文件保持不变。如果匹配了,把匹配内容替被换为line内容。

举个栗子:

vim lineinfile.yaml
- hosts: node
  gather_facts: no
  become: yes
  become_method: sudo
  
  tasks

1、备份文件

- name: 'backup file'
  lineinfile:
    path: /root/config
    backup: yes
    line: state=present

2、替换整行

- name: '替换'
  lineinfile:
    path: /root/config
    regexp: '^SELINUX='
    line: '此行已被我替换了'

3、在匹配行前面插入

- name: '在匹配行前面插入'
  lineinfile:
    path: /root/config
    insertbefore: 'SELINUXTYPE=targeted'
    line: '成功在匹配行前面插入一行'

4、在匹配行后面插入

- name: "在匹配行后面插入"
  lineinfile:
    dest: /root/config
    insertafter: 'minimum - Modification of targeted policy.'
    line: 成功在匹配行后面插入一行'

5、删除匹配行

- name: '删除匹配行'
  lineinfile:
    dest: /root/config
    regexp: 'J\+sZc\_j\!s\@d\#x'
    state: absent

6、添加

- name: 'add a line'
  lineinfile:
    dest: /root/config
    regexp: 'add a line!'
    line: '我出现代表没有匹配项'

7、没有匹配,保持文件不变

- name: 'backrefs'
  lineinfile:
    dest: /root/config
    backrefs: yes
    regexp: 'add a line~~~'
    line: '没有匹配项我也不会出现在文件中'

8、新建

- name: 'create'
  lineinfile:
    dest: /root/test.txt
    create: yes
    line: state=present

9.insertafter insertbeforce也支持正则

- name: Modify Zabbix Super User
  lineinfile:
    path: /etc/sudoers
    insertafter: '^root'
    line: 'zabbix ALL = NOPASSWD: ALL'

标签:12,匹配,name,lineinfile,插入,ansible,line,root
From: https://www.cnblogs.com/yangtao416/p/16707109.html

相关文章

  • 本次介绍如何利用ansible一键初始化centos7
    本次介绍如何利用ansible一键初始化centos7。本文介绍的运行环境是CentOS7.6:[root@localhost~]#cat/etc/redhat-releaseCentOSLinuxrelease7.6.1810(Core)[r......
  • 上周热点回顾(9.12-9.18)
    热点随笔:· 如何写成高性能的代码(一):巧用Canvas绘制电子表格 (葡萄城技术团队)· 里程碑!用自己的编程语言实现了一个网站 (crossoverJie)· 放弃Electron,拥抱WebVie......
  • 我的设计模式之旅、12 原型模式
    编程旅途是漫长遥远的,在不同时刻有不同的感悟,本文会一直更新下去。思考总结思考问题如果没有原型模式,当我们复制复杂对象,在新建相同类的对象,遍历原始对象中的所有成员变......
  • 2022-2023-1 20221312 《计算机基础与程序设计》第三周学习总结
    班级链接:首页-2022-2023-1-计算机基础与程序设计-北京电子科技学院-班级博客-博客园(cnblogs.com)作业要求:2022-2023-1《计算机基础与程序设计》教学进程-娄......
  • CVE-2017-12149 JBoss JMXInvokerServlet 反序列化漏洞
    一、漏洞概述     2017年8月30日,厂商Redhat发布了一个JBOSSAS5.x的反序列化远程代码执行漏洞通告。该漏洞位于JBoss的HttpInvoker组件中的ReadOnlyAccessFil......
  • 022年9月12日 学习ASP.NET Core Blazor编程系列三——实体
    学习ASP.NETCoreBlazor编程系列一——综述学习ASP.NETCoreBlazor编程系列二——第一个Blazor应用程序(上)学习ASP.NETCoreBlazor编程系列二——第一个Blazor应......
  • 20201206韩进学习笔记3
    sh编程sh脚本包含sh语句的文本文件,命令解释程序sh要执行该语句。sh脚本与C程序sh:解释程序,逐行读取sh脚本文件并直接执行,若行是可执行命令且为内置命令,则可直接执行。......
  • leetcode 127 -- 哈希表
    题目描述217手写哈希表classSolution{public:#defineDEFAULT_LEN16#defineDEFAULT_FACTOR0.75fconstfloatfactor=DEFAULT_FACTOR;typed......
  • 《Unix/Linux系统编程》第十章学习笔记 20201209戴骏
    第十章sh编程一、知识点归纳(一)sh脚本sh脚本(Bourne1982;Forouzan和Gilberg2003)是一个包含sh语句的文本文件,命令解释程序sh要执行该语句。例如,我们可以创建一个文......
  • 20201220蔡笃俊《信息安全系统设计与实现》第十章学习笔记
    一、任务内容自学教材第10章,提交学习笔记(10分)大家学习过Python,C,Java等语言,总结一下一门程序设计语言有哪些必备的要素和技能?这些要素和技能在shell脚本中是如果呈......