首页 > 其他分享 >10、ansible-YAML-非标记语言-剧本的编写-.yaml -剧本执行ansible-playbook-handlers触发

10、ansible-YAML-非标记语言-剧本的编写-.yaml -剧本执行ansible-playbook-handlers触发

时间:2024-06-17 10:48:07浏览次数:20  
标签:10 name httpd yaml ansible playbook apache 剧本

 

============================================================剧本的编写==================================================

通过YAML编写一个剧本,完成web的部署,配置,启动的全过程

1、先将目标主机的网站服务卸载

ansible all -m yum -a 'name=httpd state=removed' -o

·all 表示所有的主机

 

2、在本机安装httpd

yum install -y httpd

3、配置本机的httpd配置文件、自己准备一个配置文件

  ·新建一个文件夹放配置文件,方便给其它目标主机统一发过去

    ··mkdir apache    //这里我在/home目录下新建

    ··将httpd的配置文件拷进去   cp /etc/httpd/conf/httpd.conf   /home/apache

    ··修改配置文件里的 监听端口  改成8080    

          

 

4、编写剧本  就是以.yaml为后缀的文本

  · 剧本后缀要以yaml结尾  

  ·vim  apache.yaml

- hosts: webserver                    //针对的目标主机  这里webserver是一个组 组下有四台主机
  tasks:                          //task  是下边要执行的任务
  - name: intall apache packages            //任务1的名字:描述任务的信息(描述的信息自己随意编辑,但是name是固定的)
    yum: name=httpd state=present           // yum:  意思是执行yum模块 的任务 
  - name: copy apache conf
    copy: src=/home/apache/httpd.conf dest=/etc/httpd/conf/httpd.conf    //执行copy模块 的任务
  - name: ensure apache is running
    service: name=httpd state=started enabled=yes              //执行serivce 模块的任务


#注意:每一个空格都很重要

 

5、测试剧本     playbook

  ·可以先看一眼文本   cat  apache.yaml

  ·使用playbook检查剧本语法

  ansible playbook apache.yaml --syntax-check

·playbook 只是检查语法,不保证参数有没有错误
·--syntax-check 检查语法

   ·列出剧本任务的名字

ansible-playbook apache.yaml --list-task

·--list-task  列出剧本任务的名字

   ·列出剧本的目标主机

ansible-playbook apache.yaml --list-hosts

 以上三步都没问题后、下边执行剧本

 

6、执行剧本

ansible-playbook apache.yaml

 

 

7、查看其他主机的配置文件是否是更改过的

8、访问网页

  ·ip:8080

 

 

=======================================================handlers 触发、通知、操作模块=================================================

"handlers" 是 Ansible 中的一个关键字,它用于定义在任务执行过程中需要执行的操作。在 Ansible 中,handlers 通常用于在任务执行完成后,执行一些额外的操作,比如重启服务、重新加载配置等。

handlers 的定义方式与 tasks 类似,但是它们不会在 playbook 执行过程中立即执行。相反,handlers 只有在它们所依赖的任务执行完成后才会执行。

 

- hosts: webserver
  tasks:
  - name: intall apache packages
    yum: name=httpd state=present
  - name: copy apache conf
    copy: src=/home/apache/httpd.conf dest=/etc/httpd/conf/httpd.conf
    natify: restart apache service for me        //notify 通知  ,就是当上一个模块发生改变时,才会执行notify  notify就会去通知 后面绿色的语句  就会寻找到下面的handlers下的name
  - name: ensure apache is running
    service: name=httpd state=started enabled=yes
  handlers:                               //当触发时才要执行  、就是当上面的notify被触发时才会执行相对应的   name:
  - name: restart apache service for me
    service: name=httpd state=restarted

 

 这里测试将httpd.conf 的端口改为9090

  ·在剧本文件  apache.yaml  不加hanlers 的时候改配置文件的端口  执行yaml文件

    ··ansible-playbook apache.yaml    发现目标主机的httpd端口没改过来

 

   ·在剧本文件里加上handlers后,在执行剧本文件

    ·· ansible-playbook apache.yaml    此时由于触发了handlers  ,使yaml文件执行了重启httpd服务的指令,目标主机的端口也改过来了

标签:10,name,httpd,yaml,ansible,playbook,apache,剧本
From: https://www.cnblogs.com/littlecc/p/17436626.html

相关文章

  • 9、ansible-Ad-Hoc-点对点模式--m shell-shell模块(执行的就是linux命令)
    作用:可以执行任何有效的shell命令,包括管道、重定向和其他shell特性。该模块将在远程主机上启动一个shell,然后在该shell中执行命令。执行结果可以作为任务的输出返回,也可以将其保存到文件或变量中供后续任务使用。请注意,与其他模块相比,shell模块的执行效率较低,因为它需要在......
  • 13、ansible-shell、command、script使用
    command模块简介command模块用于在给的的节点上运行系统命令,比如echohello。它不会通过shell处理命令,因此不支持像$HOME这样的变量和,以及<, >, |, ;和&等都是无效的。也就是在command模块中无法使用管道符。模块参数名称必选备注chdirno运行command命令前......
  • 超级底层:10WQPS/PB级海量存储HBase/RocksDB,底层LSM结构是什么?
    文章很长,且持续更新,建议收藏起来,慢慢读!疯狂创客圈总目录博客园版为您奉上珍贵的学习资源:免费赠送:《尼恩Java面试宝典》持续更新+史上最全+面试必备2000页+面试必备+大厂必备+涨薪必备免费赠送:《尼恩技术圣经+高并发系列PDF》,帮你实现技术自由,完成职业升级,薪......
  • NI SCXI-1000 数据采集和控制框架
    SCXI-1000特点:模块化设计:该框架采用模块化设计,可以根据实际需求选择不同的模块进行组合,以满足各种数字量控制系统的需求。高可靠性:在设计和制造过程中采用了高品质的材料和工艺,保证了其能够在恶劣的环境条件下稳定运行。多通道支持:支持多个数字量输入/输出通道,可以同时处理......
  • 有手就行!10分钟上手实现文生图!
    大家好,我是Java陈序员。今天,给大家介绍一个文生图工具,无需繁杂的配置,一键安装启动,十分钟就能实现文生图!关注微信公众号:【Java陈序员】,获取开源项目分享、AI副业分享、超200本经典计算机电子书籍等。项目介绍Fooocus一款基于Gradio实现的图像生成软件,提供高质量的文本生......
  • 6.10博客
    放松也放松完了快考试了进入状态了该学习内容:安卓<?xmlversion="1.0"encoding="utf-8"?><RelativeLayout    xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools" ......
  • 【华为OD】D卷真题100分:阿里巴巴找黄金宝箱(II) C语言代码实现[思路+代码]
    【华为OD】2024年C、D卷真题集:最新的真题集题库C/C++/Java/python/JavaScript【华为OD】2024年C、D卷真题集:最新的真题集题库C/C++/Java/python/JavaScript-CSDN博客JS、Java、C、python、C++代码实现:【华为OD】D卷真题100分:阿里巴巴找黄金宝箱(II)JavaScript代码实现[思......
  • 【华为OD】D卷真题100分: 生日礼物 C++代码实现
    【华为OD】2024年C、D卷真题集:最新的真题集题库C/C++/Java/python/JavaScript【华为OD】2024年C、D卷真题集:最新的真题集题库C/C++/Java/python/JavaScript-CSDN博客C、java、python、JS、C++代码实现:【华为OD】D卷真题100分:生日礼物C语言代码实现-CSDN博客【华为OD】D......
  • 2024年6月16日 18:10,cnblog博客园的第一天!!!
    终于A了P06614迷宫游戏5,原来是动态规划......点击查看代码#include<bits/stdc++.h>#definedebug(a);cout<<#a<<"="<<a<<endl;#definerep(i,a,b)for(inti=a;i<=b;i++)#definepep(i,a,b)for(inti=a;i>=b;i--)usingnamespacestd;......
  • 6.10
    今日学习心得《人月神话》是一部经典的软件工程著作,作者弗雷德里克·布鲁克斯在书的结尾对软件工程的未来发展方向进行了深刻的展望。他强调了持续改进软件开发实践、加强团队协作和沟通、以及持续学习和创新的重要性。这些观点对于当今的软件开发实践仍然具有重要意义。首先,持......