ansible模块之blockinfile

一、模块说明

二、常用参数

三、案例演示


一、模块说明

        blockinfile: 在指定文件中插入一段"文本",这段文本是被标记的,以便于我们后续通过标记找到这段文本

二、常用参数 常用参数:

详细参数执行:

ansible-doc blockinfle

常用参数:

backup:    是否备份文件
block:    指定要插入标记内的文本
create: 如果文件不存在,则创建新文件
group: 文件属组
insertafter: 如果指定,文本将插入到最后一次匹配项的后面
insertbefore: 如果指定,文本讲插入到最后一次匹配项的前面
maker:    假如我们想要在指定的文件中插入一段文本,ansible会自动为这段文本添加2个标记,一个开始标记,一个结束标记;
        默认情况下,开始标记为:# BEGIN ANSIBLE MANAGED BLOCK,结束标记为# END ANSIBLE MANAGED BLOCK
path:    文件路径
state:    可选present或absent,默认为将指定的文本插入到文件中,如果文件中存在该文本,则会更新对应的段落,如果为absent,则删除对应的段落

 三、案例演示

1. 创建文本并输入block内容
ansible cluster -m blockinfile -a "path=/tmp/aa.txt block='this is a test' create=True"
[root@node1 tmp]# cat aa.txt
# BEGIN ANSIBLE MANAGED BLOCK
this is a test
# END ANSIBLE MANAGED BLOCK

 2. 自定义标记
ansible cluster -m blockinfile -a 'path=/tmp/aa.txt block="this is bob\nthis is tim" marker="#{mark} start to mark"'
[root@node1 tmp]# cat /tmp/aa.txt
# BEGIN ANSIBLE MANAGED BLOCK
this is a test
# END ANSIBLE MANAGED BLOCK
#BEGIN start to mark
this is bob
this is tim
#END start to mark

 3. 文件中存在的内容更新(因为标记存在,匹配的内容就会做更新)
 ansible cluster -m blockinfile -a 'path=/tmp/aa.txt block="this is lxm" marker="#{mark} start to mark"'
# BEGIN ANSIBLE MANAGED BLOCK
this is a test
# END ANSIBLE MANAGED BLOCK
#BEGIN start to mark
this is lxm
#END start to mark

 4. 删除指定块
ansible cluster -m blockinfile -a 'path=/tmp/aa.txt  marker="{mark} start to mark" state=basent'
[root@node1 tmp]# cat aa.txt
# BEGIN ANSIBLE MANAGED BLOCK
this is a test
# END ANSIBLE MANAGED BLOCK

 5. 插入文件开头
BOF就是begin of file
ansible cluster -m blockinfile -a 'path=/tmp/aa.txt block="this is wuhan" marker="#{mark}wuhan" insertbefore=BOF'
注意:insertbefore可以指定正则匹配,当有多个匹配,默认插入第一个匹配项前面
[root@node1 tmp]# cat aa.txt
#BEGINwuhan
this is wuhan
#ENDwuhan
# BEGIN ANSIBLE MANAGED BLOCK
this is a test
# END ANSIBLE MANAGED BLOCK

6. 正则匹配
ansible cluster -m blockinfile -a 'path=/tmp/aa.txt block="bbbbb" insertbefore=aaaa'
[root@node1 tmp]# cat aa.txt
#BEGINwuhan
this is wuhan
#ENDwuhan
# BEGIN ANSIBLE MANAGED BLOCK
bbbbb
# END ANSIBLE MANAGED BLOCK
aaaa
aaaa 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Ansibleblockinfile模块可以帮助我们在指定的文件中插入一段文本,并且这段文本会被标记。换句话说,我们可以通过这个标记在以后的操作中找到这段文本,并进行修改或删除。 在使用blockinfile模块时,我们可以指定要插入的文本、要插入的文件路径以及标记的名称。通过这个模块,我们可以方便地对文件进行修改并维护配置。 举个例子,假设我们有一个远程主机和一个Ansible主机。我们想要在远程主机的某个文件中插入一段文本,并在以后的操作中能够找到这段文本进行修改。我们可以使用blockinfile模块,在Ansible主机上编写一个Playbook来实现这个功能。 首先,我们可以在Playbook中定义一个任务,使用blockinfile模块来插入文本。我们可以指定要插入的文本、要插入的文件路径以及标记的名称。接着,我们可以执行这个Playbook,Ansible会连接到远程主机并执行任务。 在执行过程中,Ansible会在指定的文件中找到标记,并将要插入的文本插入到标记所在的位置。这样,我们就可以通过标记来定位并修改这段文本。 总结起来,Ansibleblockinfile模块可以帮助我们在指定的文件中插入一段文本,并通过标记来定位和修改这段文本。这个模块在维护配置文件和进行文件操作时非常有用。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [ansible(五)常用模块blockinfile,lineinfile,find)之文件操作](https://blog.csdn.net/AaNiceMan/article/details/105094805)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [ansible-tower 3.8.6 authorization](https://download.csdn.net/download/hanzheng260561728/85452491)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值