ansible模块lineinfile
示列:
sshd_set.yaml
---
- hosts: test
remote_user: root
gather_facts: False
tasks:
- name: set hostname
lineinfile: dest=/etc/sysconfig/network backrefs=yes regexp='^(HOSTNAME=).*' line='\1{{ inventory_hostname }}'
notify: reboot
handlers:
- name: reboot
shell: /sbin/reboot
iptables_add.yml
---
- hosts: test
gather_facts: false
tasks:
- name: iptables test
lineinfile: dest=/etc/sysconfig/iptables insertafter='^-A INPUT -i lo' line='-A INPUT -s 192.168.0.8 -m state --state NEW -m tcp -p tcp --dport 10050 -j ACCEPT'
notify: reload iptables
handlers:
- name: reload iptables
service: name=iptables state=reloaded
iptables_add.sh(iptables_add.yml的shell版)
#!/bin/bash line="\-A INPUT \-s 192.168.0.8 \-m state \-\-state NEW \-m tcp \-p tcp \-\-dport 10050 \-j ACCEPT"
iptables_conf="/etc/sysconfig/iptables" grep -s "$line" $iptables_conf
if [ $? != ];then
sed -i "/^-A INPUT -i lo/a $line" $iptables_conf
/etc/init.d/iptables reload
fi
说明:
ansible-doc lineinfile
替换 移除文件的单行 # 多行替换 移除参考replace模块
Options: (= is mandatory)(= 后面的参数是强制要有的)
- backrefs(default=no)
与state=present一起使用
一、支持反向引用
二、稍微改变了模块的操作方式
1、前插'insertbefore',后插'insertafter'失效
2、如果匹配到 替换最后一个匹配结果
3、如果未匹配到 不做任何改变
= dest
被编辑的文件
- insertafter
需要声明 state=present
在匹配行后插入,如果未匹配到则默认为EOF。ps:如果line存在则不会再插入,不管regexp有没有匹配到
- insertbefore
需要声明 state=present
在匹配行前插入,如果未匹配到则默认为BOF。ps:如果line存在则不会再插入,不管regexp有没有匹配到
- line
需要声明 state=present
插入或替换的字符串
- regexp
使用正则匹配
- state(default=present)
present 如果匹配到就替换(最后一个匹配结果) #如果未设置backrefs=yes 未匹配到也会在最后插入line
absent 移除匹配行(所有匹配到的)
ansible模块lineinfile的更多相关文章
- ansible 下lineinfile详细使用
ansible 下lineinfile详细使用 时间 2016-12-13 18:02:31 51CTO推荐博文 原文 http://zouqingyun.blog.51cto.com/78224 ...
- ansible 下lineinfile详细使用 【转】
转自 ansible 下lineinfile详细使用 - 散人 - 51CTO技术博客http://zouqingyun.blog.51cto.com/782246/1882367 一.简述 这几天在 ...
- ansible模块
ansible模块: 模块(Modules),类似于 "任务插件"("task plugins")或"库插件"("library ...
- ansible笔记(3):ansible模块的基本使用
ansible笔记():ansible模块的基本使用 在前文的基础上,我们已经知道,当我们使用ansible完成实际任务时,需要依靠ansible的各个模块,比如,我们想要去ping某主机,则需要使用 ...
- 第4天:Ansible模块
Ansible对远程服务器的实际操作实际是通过模块完成的,其工作原理如下: 1)将模块拷贝到远程服务器 2)执行模块定义的操做,完成对服务器的修改 3)在远程服务器中删除模块 需要说明的是,Ansib ...
- ansible模块command、shell、raw、script
简介 环境: ansible端: ip:192.168.100.129 hostname:node1.lansgg.com client端: ip:192.168.100.131 hostname:v ...
- win10的pycharm中安装ansible模块过程
前面的安装报错信息 ansible模块安装报错:Could not install packages due to an OSError: [Errno 2] No such file or dire ...
- ansible 模块 分享
A a10_server 管理A10 Networks AX / SoftAX / Thunder / vThunder设备 a10_service_group 管理A10网络设备的服务组 a10_v ...
- ansible模块文件操作
Ansible常用模块文件操作 [root@tiandong etc]# ansible-doc -l 列出ansible所支持的模块 [root@tiandong ~]# ansible-doc ...
随机推荐
- AsyncTask源码解析
package com.example.demo.activity.net; import java.util.ArrayDeque; import java.util.concurrent.Bloc ...
- 你应该知道的25道Javascript面试题
题目来自 25 Essential JavaScript Interview Questions.闲来无事,正好切一下. 一 What is a potential pitfall with usin ...
- 【深入ASP.NET原理系列】--ASP.NET请求管道、应用程序生命周期、整体运行机制
微软的程序设计和相应的IDE做的很棒,让人很快就能有生产力..NET上手容易,生产力很高,但对于一个不是那么勤奋的人,他很可能就不再进步了,没有想深入下去的动力,他不用去理解整个框架和环境是怎么执行的 ...
- unity3d 三分钟实现简单的赛车漂移
提到赛车游戏,大家最关心的应该就是漂移吧?! 从学unity开始,我就一直在断断续续的研究赛车 因为自己技术太烂.悟性太差等原因,我走了不少弯路 也许你会说,网上那么多资料,你不会查啊 是啊!网上一搜 ...
- 工作框架各种使用整理 -- 展示数据列表并做update
<!--ProductCategory.xml--> <?xml version="1.0" encoding="UTF-8"?> &l ...
- 访问HTML元素(节点)
访问HTML元素等同于访问节点,能够以不同的 方式来访问HTML元素: 通过使用 getElementById() 方法 通过使用 getElementsByTagName() 方法 通过使用 get ...
- Project Serve 2013部署方法
在线版Project2013部署手册 服务器环境要求 系统:windows server 2008r2.windows server2012x64 Sharepoint 2013 内存至少16GB,最 ...
- php 实现创建文件并追加数据
最近因为后台有其他事情忙,所以我最近又开始学习php的内容了. (不过话说回来从客户端写到后台的感觉还是很爽的,嘿嘿) 需求是这样:从前台发来一些信息,存成文本文档,以后再统一处理(比如,存入用户账户 ...
- cxf和jaxws的对比
和jaxws相比,服务器发布方式和客户端访问方式不同 以下是cxf的代码: 服务器发布方式: package service; import javax.xml.ws.Endpoint; import ...
- android 之 surfaceView和普通View的重绘使用
!自定义控件式需要实现AttrbuteSet 可在xml文件中配置略过创建该对象 普通的View只能在主线程中绘制界面,适用于简单的被动绘制 SurfaceView则可以在新线程中绘制界面,不会阻 ...