ansible下使用blockinfile添加配置信息到xml

这篇具有很好参考价值的文章主要介绍了ansible下使用blockinfile添加配置信息到xml。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

#发文福利#

一、前言

1、目标:批量修改服务器上的xml配置文件
2、原配置文件的最后一部分内容如下
[root@s40 tmp]# tail kahn.conf
  <value>nginx</value>
  <description>my nginx config!</description>
</property>

<property>
  <name>address</name>
  <value>shanghai.china</value>
</property>

</configuration>
3、要求:在倒数第二行的位置插入新的配置信息
            <property1>
              <name1>kahn.config</name>
              <value1>hahahaha.hello world!</value>
            </property1>

二、ansible-playbook的写法

---

- hosts: all
  gather_facts: no
  ignore_unreachable: yes
  tasks:
    - name: debug 1
      debug:
        msg: "hello , newgroup"

    - name: 往xml里插入一段配置信息
      blockinfile:
          path: /opt/tmp/hdfs-site.xml
          insertbefore: "</configuration>"
          block: |
            <property1>
              <name1>kahn.config</name>
              <value1>hahahaha.hello world!</value>
            </property1>
          marker: "#{mark} my marker kahn..."
		  state: present
      notify:
        - handler1

  handlers:
    - name: handler1
      command: /bin/bash -c "/usr/bin/sed -ie 's/<\/configuration>/\n<\/configuration>/g' /opt/tmp/kahn.conf"

说明:

1、insertbefore: "</configuration>" 指定在 </configuration>一行的前面插入新配置信息

2、marker: "#{mark} my marker kahn..."  指定自定义标记,注意#是linux下的注释,{mark}是固定写法,必须写。到时候再你的配置信息上下放会有标记开始和结束的信息,如#BEGIN my marker kahn...和#END my marker kahn...。为啥要加{mark},有这个标记,才能以后使用state: absent去删除块。

3、state: present 增加块。反之是state: absent,如果要删除块state: absent的前提是在增加的时候必须有marker: "#{mark}"是必不可少的。

4、notify:  - handler1 是本次的拓展,自定义动作标签,当我们修改了配置文件后,就会触发将最后一行的</configuration>替换掉为</configuration>上面增加一个空行。(注意这是个迂回的方法,没能在ansible中找到给指定行增加空白行的方法。如果我们反反复复的这样弄的话,会在最后一行</configuration>前产生多条空行)

执行结果如下:文章来源地址https://www.toymoban.com/news/detail-731295.html

[root@s40 tmp]# tail kahn.conf
  <value>nginx</value>
  <description>my nginx config!</description>
</property>

<property>
  <name>address</name>
  <value>shanghai.china</value>
</property>

<property1>
  <name1>kahn.config</name>
  <value1>hahahaha.hello world!</value>
</property1>

</configuration>

到了这里,关于ansible下使用blockinfile添加配置信息到xml的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 3.1 Ansible 的使用和配置管理

    大纲 Ansible 简介和特点 介绍 Ansible 的定义和作用,以及它在配置管理和自动化部署中的优势。 强调 Ansible 的无代理(Agentless)特性和简单易用的语法。 Ansible 安装和配置 演示如何安装 Ansible,并配置主控节点(Control Node)和被控节点(Managed Node)。 详细介绍 Ansible 配置文件

    2024年02月12日
    浏览(29)
  • Postman使用之添加cookie信息

    Postman是常用的接口测试工具,如果我们后端接口要使用浏览器中存储的Cookie数据,该如何添加呢? 我后端接口采用的是Java,功能是完成用户密码的更改,代码如下: 其中,LoginUserUtil.releaseUserIdFromCookie(request)方法是从浏览器的cookie中读取用户的id,用Poatman测试接口的时候要如

    2024年02月16日
    浏览(44)
  • 使用xml文件配置SSM整合

    使用XML文件配置SSM整合。 缺点:xml解析低,降低项目响应效率。 jdbc.properties

    2024年03月09日
    浏览(59)
  • MyBatis基本使用及XML配置

    MyBatis是一款优秀的 持久层框架, 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集的过程,减少了代码的冗余,减少程序员的操作,可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 实体类 【Plain Old Java Objects,普通的 Java对象】映射成数据库中的

    2024年02月03日
    浏览(80)
  • ansible批量创建crontab文件并添加到定时任务

    Ansible 来修改 crontab 文件并添加计划任务。用于将你提供的 cron 行添加到特定用户的 crontab 中: 确保将 your_target_host 替换为目标主机的名称或 IP 地址,将 your_username 替换为要添加 cron 任务的用户的用户名。 运行此 Playbook 将使用 Ansible 在指定的用户的 crontab 中添加新的 cron 任

    2024年02月11日
    浏览(43)
  • SSM整合之使用配置类替换xml配置文件(2)

    SSM整合就是将MVC三层架构和框架核心API组件交给SpringIoC容器管理! 一般需要配置两个IoC容器进行三层架构组件管理。 容器名 盛放组件 web容器 web相关组件(controller,springmvc核心组件) root容器 业务和持久层相关组件(service,aop,tx,dataSource,mybatis,mapper等) web容器是root容器的子容

    2024年03月09日
    浏览(52)
  • idea模板的使用(配置xml文件模板)

    1. 问题的引出 我们在日常项目中可以发现,sql映射文件和mybatis主配置文件,以及application.yml文件中有很多固定不变的内容,为了方面使用,所以可以把这些xml文件设置为模板 2. 创建模板的步骤 按照图片一步一步进行即可 点击apply,点击ok就完成了;当然模板里面的内容自己

    2024年02月13日
    浏览(41)
  • Python读取Ansible playbooks返回信息

    当公司管理维护的服务器到达一定规模后,就必然借助远程自动化运维工具,而ansible是其中备选之一。Ansible基于Python开发,集合了众多运维工具(puppet、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。Ansible是借助ssh来和远程主机通讯

    2024年02月05日
    浏览(33)
  • 1.7 基于XML配置方式使用Spring MVC

    1、创建Maven项目 Maven项目 - SpringMvcDemo01 单击【Finish】按钮 2、添加相关依赖 在pom.xml文件里添加支持Spring MVC的相关依赖 3、给项目添加Web功能 打开项目结构窗口,在列表里选择【Modules】 单击【+】按钮,添加Web功能 单击【Create Artifact】按钮,将名称改为“SpringMvcDemo01” 单击

    2024年02月08日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包