zoukankan      html  css  js  c++  java
  • ansible笔记(12):handlers的用法

      参考:http://www.zsythink.net/archives/2624

    不过在开始介绍它们之前,我们先来描述一个工作场景。

    当我们修改了某些程序的配置文件以后,有可能需要重启应用程序,以便能够使新的配置生效,那么,如果使用playbook来实现这个简单的功能,该怎样编写playbook呢?

    我们来试试,此处我们使用nginx作为示例,虽然nginx可以使用'nginx -s reload'命令重载配置,但是此处的示例中并不会使用这个命令,而是用nginx类比那些需要重启生效的应用。

    假设我们想要将nginx中的某个server的端口从8080改成8088,并且在修改配置以后重启nginx,那么我们可以编写如下剧本。

    [root@node1 ansible]# cat nginx.yml 
    ---
    - hosts: test70
      remote_user: root
      tasks:
      - name: Modify the configuration
        lineinfile:
          path=/etc/nginx/conf.d/test.zsythink.net.conf
          regexp="listen(.*)8080(.*)"
          line="listen1 8088 2"
          backrefs=yes
          backup=yes
      - name: restart nginx
        service:
          name=nginx
          state=restarted
    

    配置文件解析

    lineinfile: #调用的模块是对行进行修改
          path=/etc/nginx/conf.d/test.zsythink.net.conf #需要修改的目标文件
          regexp="listen(.*)8080(.*)"#正则匹配,可以匹配到配置端口8080映射的哪一行
          line="listen1 8088 2"#根据正则匹配到的替换,此处1 2分别代表上一行(.*)匹配到的内容寄
          backrefs=yes #默认如果没有匹配到则会把line加到最后一行,加次参数没有匹配到则不作修改
          backup=yes#修改前备份,会在当前操作的文件夹下创建一个加了时间信息的文件
    

     

    原始配置文件如下,需要把端口修改成8088然后重启nginx

     上述play表示修改test70主机的/etc/nginx/conf.d/test.zsythink.net.conf配置文件,将监听端口8080改为监听端口8088,端口修改完成后,重启服务。

    在执行这个playbook之前,我们先来确认一下test70主机的8080端口是否被监听

    可以看到test70主机上的8080正常被监听,那么现在我们来执行一下上述playbook,看一下执行效果

    执行后可以看到,play中的两个任务都被正常执行了,如下图所示

    ansible-playbook nginx.yml
    

     

    这样没有任何问题,与我们预期的一样,端口号从8080修改为8088,重启了服务

    那么,我们再来重复执行一遍上述playbook试试,看看会出现什么情况,重复执行效果如下

  • 相关阅读:
    BZOJ 1977: [BeiJing2010组队]次小生成树 Tree( MST + 树链剖分 + RMQ )
    BZOJ 2134: 单选错位( 期望 )
    BZOJ 1030: [JSOI2007]文本生成器( AC自动机 + dp )
    BZOJ 2599: [IOI2011]Race( 点分治 )
    BZOJ 3238: [Ahoi2013]差异( 后缀数组 + 单调栈 )
    ZOJ3732 Graph Reconstruction Havel-Hakimi定理
    HDU5653 Bomber Man wants to bomb an Array 简单DP
    HDU 5651 xiaoxin juju needs help 水题一发
    HDU 5652 India and China Origins 并查集
    HDU4725 The Shortest Path in Nya Graph dij
  • 原文地址:https://www.cnblogs.com/minseo/p/13754947.html
Copyright © 2011-2022 走看看