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 }}