news 2026/7/23 3:49:22

Ansible-Playbook

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Ansible-Playbook

ansible-Playbook是一系列ansible命令的合集,使用的是yaml语言进行编写的,自上而下的顺序进行执行,并且可以进行使用变量

Yaml语法

yaml语言是专门使用于进行编写配置文件的

大小写敏感

使用缩进来进行表示层级关系

缩进的空格数不重要,只要相同层级的在左侧对齐就可以

#表示注释

支持的数据类型1、纯量:单个,不可以再分的值,数据最小单位,单个变量2、数组:一组按次序排序的值,数组元素使用-开头3、对象:键值对合集 使用冒号结构 例如name: android 冒号后面必须使用空格 语法案例 name:Tom age:27 wife: name:jerry age:25 children: -name: jack age:15-name: bob age:14

Playbook基本语法

所有写的playbook文件必须使用.yml进行结尾

执行playbook语法 ansible-playbook yml文件

playbook是自上到下执行的 中间有报错的不影响 修复之后可以反复执行

playbook结构说明,playbook是由一个或者是多个play组成的,一个task就是对ansible的模块的调用,将多个play安装顺序的组织到playbook中就是编排
playbook案例

安装在nfs主机上安装http服务,自定义网页为 Hello playbook http路径:/var/www/html/index.html

#准备好网页资源[root@m01 http]# cat index.htmlHELLO PLAYBOOK!!!#编写playbook[root@m01 http]# cat http.yml-name:install httpshosts:nfstasks:-name:install httpdyum:name:httpdstate:present-name:copy wordcopy:src:/http/index.htmldest:/var/www/html/index.html-name:start httpssystemd:name:httpdstate:startedenabled:yes#执行剧本[root@m01 http]# ansible-playbook http.ymlPLAY[install https]*********************************************************** TASK[Gathering Facts]*********************************************************ok:[nfs]TASK[install httpd]***********************************************************ok:[nfs]TASK[copy word]***************************************************************changed:[nfs]TASK[start https]*************************************************************changed:[nfs]PLAY RECAP*********************************************************************nfs:ok=4 changed=2 unreachable=0 failed=0#验证访问nfs的80端口[root@m01 http]# curl 10.0.0.31:80HELLO PLAYBOOK!!!
ansible-playbook常用选项

-v 打印运行的结果

-vv 打印任务运行的结果以及任务的配置信息

-vvv 打印包含的远程信息

-vvvv 具体的详细信息

#校验playbook的语法--syntax-check[root@m01 http]# ansible-playbook --syntax-check http.ymlplaybook: http.yml#测试运行playbook-C 测试运行 不会真的进行执行[root@m01 http]# ansible-playbook -C http.ymlPLAY[install https]*********************************************************** TASK[Gathering Facts]********************************************************* ok:[nfs]TASK[install httpd]*********************************************************** ok:[nfs]TASK[copy word]*************************************************************** ok:[nfs]TASK[start https]************************************************************* ok:[nfs]PLAY RECAP ********************************************************************* nfs:ok=4changed=0unreachable=0failed=0skipped=0rescued=0ignored=0
多个任务的playbook案例

在nfs上进行安装http服务启动并且安装mariadb

#编写剧本[root@m01 http]# cat more.yml- name: use httpd hosts: nfs tasks: - name: start httpd yum: name: httpd state: present - name: copy copy: src: /http/index.html dest: /var/www/html/index.html - name: systemd systemd: name: httpd state: started enabled:yes- name:installmariadb hosts: nfs tasks: - name: yum yum: name: - mariadb - mariadb-server state: present - name: started systemd: name: mariadb state: started enabled:yes执行剧本[root@m01 http]# ansible-playbook more.ymlPLAY[use httpd]************************************************************************************************************************************************** TASK[Gathering Facts]******************************************************************************************************************************************** ok:[nfs]TASK[start httpd]************************************************************************************************************************************************ ok:[nfs]TASK[copy]******************************************************************************************************************************************************* ok:[nfs]TASK[systemd]**************************************************************************************************************************************************** ok:[nfs]PLAY[install mariadb]******************************************************************************************************************************************** TASK[Gathering Facts]******************************************************************************************************************************************** ok:[nfs]TASK[yum]******************************************************************************************************************************************************** changed:[nfs]TASK[started]**************************************************************************************************************************************************** changed:[nfs]PLAY RECAP ******************************************************************************************************************************************************** nfs:ok=7changed=2unreachable=0failed=0skipped=0rescued=0ignored=0
ignore_error模块可以忽略错误信息
#使用方法- name:installmariadb hosts: nfs tasks: - name: yum yum: name: - mariadb - mariadb-server state: present - name: started systemd: name: mariadb state: started enabled:yesignore_errors: True
Handler模块

handler事实上就是一个task,但是这个task默认是不执行的,只有被触发才会进行使用,通过notify进行监控某个或某几个task,一旦task执行结果有变化就触发执行handler

handler会在所有的play执行完成之后最后执行一次

Handler 的核心使用场景是:处理 “配置变更后需要重启 / 重载服务” 的场景(这是运维中最常见的需求)。

举个通俗的例子:你管理一台 Nginx 服务器,日常操作有两个步骤:

  1. 修改 Nginx 的配置文件(<font style="color:rgb(0, 0, 0);">/etc/nginx/nginx.conf</font>);
  2. 如果配置文件改了,就重启 Nginx 服务(让配置生效);如果没改,就不用重启。
- name:testhandler usage hosts: nfs tasks:# 任务1:安装httpd(若已安装,changed: false;若未装,changed: true)- name:installhttpd package yum: name: httpd state: present# 任务2:拷贝httpd配置文件(若文件有变化,changed: true,触发Handler;否则不触发)- name: copy httpd configfilecopy: src: /tmp/httpd.conf# 控制端的配置文件dest: /etc/httpd/conf/httpd.conf# 目标主机的配置文件notify: restart httpd# 关键:通知名为“restart httpd”的Handler# 定义Handlers部分:这里是所有Handler任务handlers:# Handler任务:重启httpd服务(名称要和notify的名称完全匹配)- name: restart httpd systemd: name: httpd state: restarted enabled:yes
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/23 6:26:53

毕业设计项目 基于机器视觉的目标跟踪算法

文章目录 0 前言2 目标跟踪效果3 目标跟踪的两种方法3.1 方法13.2 方法2 4 Tracking By Detecting的跟踪过程4.1 存在的问题4.2 基于轨迹预测的跟踪方式 5 训练代码6 最后 0 前言 &#x1f525; 今天学长向大家分享一个毕业设计项目 为了大家能够顺利以及最少的精力通过毕设&…

作者头像 李华
网站建设 2026/7/21 20:18:10

【大模型预训练】15-分布式训练概述:解决单机算力瓶颈的核心技术路径

引言分布式训练是现代深度学习中解决单机算力瓶颈的核心技术路径之一。随着深度学习模型的复杂性和数据量的急剧增加&#xff0c;传统的单机训练方式已难以满足高效计算的需求。分布式训练通过将计算任务分配到多个计算节点上&#xff0c;协同完成模型的训练过程&#xff0c;从…

作者头像 李华
网站建设 2026/7/23 20:55:06

重构智慧书-第10条:名声与好运

一、原文呈现名声与好运一个经久不衰&#xff0c;一个流转不定。前者常跚跚来迟&#xff0c;后者可助人乐生。好运须防他人嫉妒;名声须防湮没无闻。你可以诚心求好运有时亦可努力促成之;然一切名声无不以持之以恒的苦干为本。求名的愿望植根于力量与旺盛的精力。从古到今&#…

作者头像 李华
网站建设 2026/7/23 12:09:25

门槛低、含金量高!2026大专计算机专业必考8大证书

各位计算机专业的大专同学&#xff0c;你是否在求职时感到学历竞争力不足&#xff1f;别担心&#xff0c;证书是弥补学历短板、证明专业技能的最佳利器。选择报考门槛低、学习周期短、行业认可度高的证书&#xff0c;能为你带来极高的投资回报。一、 华为HCIA认证&#xff08;华…

作者头像 李华
网站建设 2026/7/23 23:16:20

Transformer彻底剖析(11):多层感知机MLP

目录 1 3blue1brown的MLP视频&#xff1a;图解Transformer之MLP机制解读 2 李沐的MLP视频 2.1 感知机 2.1.1 感知机存在的问题 2.2 多层感知机 2.3 问题 3 为什么transformer中要引入MLP 3.1 Transformer 的结构回顾 3.2 Transformer 中 MLP&#xff08;FFN&#xff09…

作者头像 李华
网站建设 2026/7/22 12:57:04

基于vue的宠物之家领养系系统_aj6wa9kt_springboot php python nodejs

目录具体实现截图项目介绍论文大纲核心代码部分展示项目运行指导结论源码获取详细视频演示 &#xff1a;文章底部获取博主联系方式&#xff01;同行可合作具体实现截图 本系统&#xff08;程序源码数据库调试部署讲解&#xff09;同时还支持java、ThinkPHP、Node.js、Spring B…

作者头像 李华