当前位置: 首页 > news >正文

Ansible企业及实战

目录

  • 一.Playbook介绍
    • 1.什么是playbook
    • 2.ansible playbook使用场景
  • 二.playbook组成
      • ①执行playbook进行语法检查
      • ②预测试
      • ③ 列出主机
      • 列出标签
      • ⑥执行任务
    • 1.Hosts和Users介绍
    • 2.任务列表和action介绍
    • 3.Handlers介绍
      • 4.Templates介绍

一.Playbook介绍

1.什么是playbook

playbook 顾名思义,即剧本,现实生活中演员按照剧本表演,在 ansible 中,由被控计算机表演,进行安装,部署应用,提供对外的服务等,以及组织计算机处理各种各样的事情。
playbook 是 ansible用于配置,部署,和管理节点的剧本通过 playbook 的详细描述,执行其中的-些列 tasks,可以让远端的主机达到预期的状态。playbook 就像 ansible 控制器给被控节点列出的一系列 to-do-list,而且被控节点必须要完成。

2.ansible playbook使用场景

执行一些简单的任务,使用 ad-hoc 命令可以方便的解决问题,但是有时一个设施过于复杂,需要大量的操作的时候,执行的 ad-hoc 命令是不合适的,这时候最好使用 playbook。
就像执行 shel1 命令与写 she11脚本一样,也可以理解为批处理任务,不过 playbook 有自己的语法格式使用 playbook 可以方便的重复使用这些代码,可以移植到不同的机器上面,像函数一样,最大化的利用代码。在你使用 Ansible 的过程中,你也会发现,你所处理的大部分操作都是编写 plavbook。可以把常见的应用都编写为 playbook,之后管理服务器会变得很简单。

二.playbook组成

Playbook 本身由以下几部分组成:
Tasks:任务,即调用模块完成的某操作:
Variables:变量;
Templates:模板:
Handlers:处理器,某条件满足时,触发执行的操作;['handla®]
Roles:角色。

在这里插入图片描述

①执行playbook进行语法检查

在这里插入图片描述

②预测试

在这里插入图片描述

③ 列出主机

在这里插入图片描述

列出标签

在这里插入图片描述

⑥执行任务

在这里插入图片描述

1.Hosts和Users介绍

Plavbook 的设计目的是为了让某个或某些主机以某个用户身份去执行完成相应的任务。其中用于指定要执行指定任务的主机用 hosts 定义,可以是一个也可以是由冒号分隔的多个主机组:用于指定被管理主机上执行任务的用户用 remote user 来定义,如下面示例中所示。
在这里插入图片描述
在这里插入图片描述

2.任务列表和action介绍

“Play”的主体是任务列表(Tasks list)。任务列表中的任务按照次序逐个在 hosts 中指定的所有主机上执行,在顺序执行这些任务时,如果发生错误会将所有已执行任务回滚。因此,需要在更正 Playbook 中的错误后重新执行这些任务。
Task 的任务是按照指定的参数去执行模块。每个 task 使用 name 输出 Playbook 的运行结果,一般输出内容为描述该任务执行的步骤。如果没有提供将输出 action 的运行结果。
定义 task 的格式可以用”action:module options”或“module:options”都可,其中后者可以实现向后兼容。如果 action 的内容过多,可在行首使用空白字符进行换行。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.Handlers介绍

触发更新相
如果配置文件有改动,如:Apache 端口号改变,则需要定义 notify 和 handlers,
关执行操作。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

4.Templates介绍

Jinja 是基于 Python 的模板引擎。Template 类似 Jinja 的另一个重要组件,可以看作是一个编译过的模板文件。用来产生目标文本,传递Python 的变量给板去替换模板中的标记。
(1)创建模板文件
root@ansible-node1 ~]# mkdir templatesroot@ansible-node1 ~]# cp conf/httpd.conf templates/httpd.conf.j2[root@ansible-node1 ~]# vim templates/httpd.conf.j2
Listen {{ http_port }}
ServerName f{ ansible fqdn }}

http://www.dtcms.com/a/336932.html

相关文章:

  • OVS:除了Geneve和VXLAN,还有哪些虚拟化网络协议?
  • 云计算:企业数字化转型的核心引擎
  • 传统方式部署(RuoYi-Cloud)微服务
  • 一套GoldenGate → Kafka → Flink → MySQL 的端到端增量同步方案
  • 云计算学习100天-第17天
  • Linux学习-(进程间,线程间通信)
  • nuScence数据集
  • 计算机视觉 图像处理 在两张二值图中检测线条交集点的高效方法 适合工程图纸比对、生物神经元网络分析和文档特征提取等场景 ,
  • 20. 云计算-Service MeshServerless
  • 谷粒商城项目-P3简介-分布式基础概念
  • CloudBase AI ToolKit + VSCode Copilot:打造高效智能云端开发新体验
  • 【运维进阶】LNMP + WordPress 自动化部署实验
  • CMakeLists.txt 学习笔记
  • MariaDB/MySQL 客户端工具与服务端配置精要指南
  • C++---有符号和无符号整数的位移操作
  • 云原生俱乐部-mysql知识点归纳(1)
  • 《亚矩阵云手机重构出租接单:KVM 虚拟化与边缘计算驱动的设备替代技术路径》
  • 8.18决策树
  • 性能测试(Jemter)
  • grep命令要点、详解和示例
  • 基于nvm安装管理多个node.js版本切换使用(附上详细安装使用图文教程+nvm命令大全)
  • QT第九讲- 控件委托
  • Git智能合并机制深度解析
  • ChatGPT-5 对教育行业的影响与案例研究
  • Qt笔试题
  • 录像视频删除如何恢复?手机电脑的录像恢复技巧
  • 给linux的root磁盘扩容
  • 手游搬砖对云手机的需求有哪些?
  • 机器学习实例应用
  • 获粤港澳大湾区碳足迹认证:遨游智能三防手机赋能绿色通信