首页 > 其他分享 >ansible handlers

ansible handlers

时间:2024-08-13 11:41:20浏览次数:12  
标签:TASK ok name handlers ansible 192.168 255.110 memcached

handlers01.yaml

---
- hosts: ubuntu
  handlers:
  - name: restart apache
    service: name=apache2 state=restarted
  tasks:
    - name: 确保APT包列表是最新的
      apt: update_cache=yes
    - name: 部署apache2
      apt: name=apache2 state=present
    - name: 设置开机自启
      service: name=apache2 enabled=yes
    - name: 开启Apache rewrite模块
      apache2_module: name=rewrite state=present
      notify: restart apache
root@test:~/handlers# ansible-playbook handlers01.yaml 

PLAY [ubuntu] ******************************************************************************************************************************

TASK [Gathering Facts] *********************************************************************************************************************
ok: [192.168.255.110]

TASK [确保APT包列表是最新的] ************************************************************************************************************************
changed: [192.168.255.110]

TASK [部署apache2] ***************************************************************************************************************************
ok: [192.168.255.110]

TASK [设置开机自启] ******************************************************************************************************************************
ok: [192.168.255.110]

TASK [开启Apache rewrite模块] ******************************************************************************************************************
ok: [192.168.255.110]

PLAY RECAP *********************************************************************************************************************************
192.168.255.110            : ok=5    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0 

handlers02.yaml

---
- hosts: ubuntu
  handlers:
  - name: restart apache
    service: name=apache2 state=restarted
    notify: restart memcached
  - name: restart memcached
    service: name=memcached state=restarted
  tasks:
    - name: 确保APT包列表是最新的
      apt: update_cache=yes
    - name: 部署apache2
      apt: name=apache2 state=present
    - name: 设置开机自启
      service: name=apache2 enabled=yes
    - name: 开启Apache rewrite模块
      apache2_module: name=rewrite state=present
      notify: restart apache

    - name: 部署memcached
      apt: name=memcached state=present
    - name: 设置开机自启
      service: name=memcached enabled=yes state=started
    - name: 创建目录
      file:
        path: /etc/memcached/
        state: directory
        mode: 0755
    - name: 指定配置文件
      template:
        src: templates/memcached.conf.j2
        dest: /etc/memcached/memcached.conf
        mode: 0755
      #这里通过changed_when设置为修改了配置文件,从而触发重启apache,同时重启memcached
      changed_when: true
      notify:
        - restart apache

    - name: 部署vim
      apt: name=vim state=present

root@test:~/handlers# ansible-playbook handlers02.yaml 

PLAY [ubuntu] ******************************************************************************************************************************

TASK [Gathering Facts] *********************************************************************************************************************
ok: [192.168.255.110]

TASK [确保APT包列表是最新的] ************************************************************************************************************************
changed: [192.168.255.110]

TASK [部署apache2] ***************************************************************************************************************************
ok: [192.168.255.110]

TASK [设置开机自启] ******************************************************************************************************************************
ok: [192.168.255.110]

TASK [开启Apache rewrite模块] ******************************************************************************************************************
ok: [192.168.255.110]

TASK [部署memcached] *************************************************************************************************************************
ok: [192.168.255.110]

TASK [设置开机自启] ******************************************************************************************************************************
ok: [192.168.255.110]

TASK [创建目录] ********************************************************************************************************************************
ok: [192.168.255.110]

TASK [指定配置文件] ******************************************************************************************************************************
changed: [192.168.255.110]

TASK [部署vim] *******************************************************************************************************************************
ok: [192.168.255.110]

RUNNING HANDLER [restart apache] ***********************************************************************************************************
changed: [192.168.255.110]

RUNNING HANDLER [restart memcached] ********************************************************************************************************
changed: [192.168.255.110]

PLAY RECAP *********************************************************************************************************************************
192.168.255.110            : ok=12   changed=4    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
---
- hosts: ubuntu
  handlers:
  - name: restart apache
    service: name=apache2 state=restarted
    notify: restart memcached
  - name: restart memcached
    service: name=memcached state=restarted
  tasks:
    - name: 确保APT包列表是最新的
      apt: update_cache=yes
    - name: 部署apache2
      apt: name=apache2 state=present
    - name: 设置开机自启
      service: name=apache2 enabled=yes
    - name: 开启Apache rewrite模块
      apache2_module: name=rewrite state=present
      notify: restart apache

    - name: 部署memcached
      apt: name=memcached state=present
    - name: 设置开机自启
      service: name=memcached enabled=yes state=started
    - name: 创建目录
      file:
        path: /etc/memcached/
        state: directory
        mode: 0755
    - name: 指定配置文件
      template:
        src: templates/memcached.conf.j2
        dest: /etc/memcached/memcached.conf
        mode: 0755
      #这里通过changed_when设置为修改了配置文件,从而触发重启apache,同时重启memcached
      changed_when: true
      notify:
        - restart apache

    - name: 立即执行handlers
      meta: flush_handlers

    - name: 部署vim
      apt: name=vim state=present
root@test:~/handlers# ansible-playbook handlers03.yaml 

PLAY [ubuntu] ******************************************************************************************************************************

TASK [Gathering Facts] *********************************************************************************************************************
ok: [192.168.255.110]

TASK [确保APT包列表是最新的] ************************************************************************************************************************
changed: [192.168.255.110]

TASK [部署apache2] ***************************************************************************************************************************
ok: [192.168.255.110]

TASK [设置开机自启] ******************************************************************************************************************************
ok: [192.168.255.110]

TASK [开启Apache rewrite模块] ******************************************************************************************************************
ok: [192.168.255.110]

TASK [部署memcached] *************************************************************************************************************************
ok: [192.168.255.110]

TASK [设置开机自启] ******************************************************************************************************************************
ok: [192.168.255.110]

TASK [创建目录] ********************************************************************************************************************************
ok: [192.168.255.110]

TASK [指定配置文件] ******************************************************************************************************************************
changed: [192.168.255.110]

RUNNING HANDLER [restart apache] ***********************************************************************************************************
changed: [192.168.255.110]

RUNNING HANDLER [restart memcached] ********************************************************************************************************
changed: [192.168.255.110]

TASK [部署vim] *******************************************************************************************************************************
ok: [192.168.255.110]

PLAY RECAP *********************************************************************************************************************************
192.168.255.110            : ok=12   changed=4    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0  

Handlers只有在其所在的任务被执行时,才会被运行

如果一个任务中定义了notify调用Handlers,但是由于条件判断等原因,该任务未被执行,那么Handlers同样不会被执行

Handlers只会在Play的末尾运行一次;

如果想在一个Playbook的中间运行Handlers,则需要使用meta模块来实现,

meta: flush_handlers

标签:TASK,ok,name,handlers,ansible,192.168,255.110,memcached
From: https://www.cnblogs.com/anyux/p/18356540

相关文章

  • ansible include方法使用
    root@test:~#catRestartPHPProcess.yml----name:RestartPHPProcess#该Task名为RestartPHPProcessservice:name=sshstate=restarted#调用service模块,重启名为php-#fpm的服务root@test:~#cattest.yml----hosts:localhostremote_user:roott......
  • 【Ansible 学习之旅】Ansible核心工具介绍
    系列文章Ansible介绍和架构Ansible安装和入门配置控制机器和受控机器Inventory文件介绍目录系列文章利用ansible实现管理的主要方式ansible-docansibleansible-playbookansible-vaultansible-consoleansible-galaxy利用ansible实现管理的主要方式Ad-Hoc即......
  • 使用ansible安装mongodb分片集群
    【说明】使用ansible安装一个分片集群,三台服务器,三个mongos,三个config,三个分片节点,每三个分片有三个副本(每个节点运行三个端口的mongod)  [mongo_servers]10.x.x.21ansible_user=rootansible_ssh_pass=xxxxxxxxcluster_role=mongo1......
  • ansible-yaml
    ansible-playbook简介playbooks记录并执行Ansible的配置、部署和编排功能。使用yaml格式,文件以yaml或者yml结尾官方网站:https://docs.ansible.com/ansible/latest/user_guide/playbooks.html#working-with-playbooksyaml语言YAML(YetAnotherMarkupLanguage)不是标记语言,它......
  • ansible常用模块
    ansible常见模块setup#收集远程主机的Facts(每个被管理节点在接收运行管理命令之前,会将自己主机相关信息,如操作系统,IP等信息传递给ansible主机)filter:用于进行条件过滤,如果设置,仅返回匹配过滤条件的信息ansiblehosts1-msetupansiblehosts1-msetup-a"filter=ansibl......
  • Ansible内置模块之file
    RHCE9.0 (点击查看课程介绍) 上课课时:72课时/12天+考试辅导1-2天开班频率:2个月开一期最新新班:7月27日周末班上课方式:面授/直播;提供随堂录播ansible.builtin.file模块用于管理文件和目录的属性。可以创建、删除文件或目录,修改文件权限、所有者等属性。01 选......
  • [vue3] Vue3源码阅读笔记 reactivity - collectionHandlers
    源码位置:https://github.com/vuejs/core/blob/main/packages/reactivity/src/collectionHandlers.ts这个文件主要用于处理Set、Map、WeakSet、WeakMap类型的拦截。拦截是为了什么?为什么要处理这些方法?Vue3实现响应式的思路是使用ProxyAPI在getter中收集依赖,在setter触发更新......
  • [vue3] Vue3源码阅读笔记 reactivity - collectionHandlers
    源码位置:https://github.com/vuejs/core/blob/main/packages/reactivity/src/collectionHandlers.ts这个文件主要用于处理Set、Map、WeakSet、WeakMap类型的拦截。拦截是为了什么?为什么要处理这些方法?Vue3实现响应式的思路是使用ProxyAPI在getter中收集依赖,在setter触发更新......
  • Ansible 学习与扩展整理
    一、Ansible基础知识回顾核心组件主机清单(HostInventory):定义了Ansible可以管理的目标机器列表。模块(Modules):Ansible执行特定任务的最小单位,类似于命令行工具或脚本。插件(Plugins):扩展Ansible功能,如连接插件、回调插件等。Playbook:YAML格式的文件,定义了Ansi......
  • ansible执行source /etc/profile不生效
    ansible执行source/etc/profile不生效ssh登录有两种模式:1.loginshell用SSH客户端(比如Putty、xshell)登陆Linux系统时,要求输入用户名/密码登录或根据SSHkey登录时,就是loginshell。non-loginshell而在A机器上使用SSH免密码登录B机器,就是non-logins......