playbook简介
1、基础介绍:
Playbook 是 Ansible 用于配置、部署和管理被控节点的剧本,通过详细的描述,执行其中的一系列 tasks,可以让远端主机达到预期的状态。
Play: 定义的是主机的角色。
Task: 定义的是具体执行的任务。
Playbook: 由一个或多个 play 组成,一个 play 可以包含多个 task 任务。
2、优势:
功能比 ad-hoc 更全。
能很好地控制先后执行顺序以及依赖关系。
语法展现更加直观。
Ad-hoc 无法持久使用,Playbook 可以持久使用。
3、语法格式:
采用 YAML(Yet Another Markup Language)语法格式。
缩进: 使用两个空格固定缩进风格表示层级结构,不能使用 tabs。
冒号: 以冒号结尾的除外,其他所有冒号后面必须有空格。
短横线: 表示列表项,使用一个短横杠加一个空格,多个项使用同样的缩进级别作为同一列表。
4、核心元素:
Hosts: 运行执行任务的目标主机。
Remote_user: 在远程主机上执行任务的用户。
Tasks: 任务列表。
Handlers: 只有在接受到通知时才会被触发的任务。
Templates: 使用模板语言的文本文件,使用 Jinja2 语法。
Variables: 变量替换{{ variable_name }}
。
5、简单示例:
--- hosts: control-node remote_user: root vars: pkg: httpd tasks: name: "install httpd package." yum: name={{ pkg }} state=installed name: "copy httpd configure file to remote host." copy: src=/root/conf/httpd.conf dest=/etc/httpd/conf/httpd.conf notify: restart httpd name: "boot httpd service." service: name=httpd state=started handlers: name: restart httpd service: name=httpd state=restarted
6、命令及调用方式:
ansible-playbook <filename.yml> ... [options]
<filename.yml>
: YAML 格式的 playbook 文件路径,必须指明。
常用选项包括--ask-vault-pass
,-C
,--check
,-D
,--diff
,-e
,--flush-cache
。
playbook的核心元素与配置详解
1、hosts:任务的目标主机,多个主机用冒号分隔,一般调用 /etc/ansible/hosts 中的分组信息。
2、remote_user:远程主机上,运行此任务的默认身份为 root。
3、tasks:任务,即定义的具体任务,由模块定义的操作列表。
4、handlers:触发器,类似 tasks,只是在特定的条件下才会触发的任务,某任务的状态在运行后为 changed 时,可通过 notify 通知给相应的 handlers 进行触发执行。
5、roles:角色,将 hosts 剥离出去,由 tasks、handlers 等所组成的一种特定的结构集合。
playbook 格式与注意事项
1、格式:
playbook 需要注意的事项包括:严格缩进且不能用 Tab 键缩进;缩进级别必须一致;K/V 的值可同行写也可换行写。
playbook 由 YMAL 语言编写,整个文件以 开始并以
...
结束。
每次在执行 playbook 文件之前,一定要使用-C
选项来进行预测试,该选项会执行一遍 playbook 文件,但不会对目标主机进行任何更改。
2、常用选项:
--syntax-check
:检测 YAML 文件的语法。
-C
:预测试,不会改变目标主机的任何设置。
--list-tasks
:列出 YAML 文件的任务列表。
--list-hosts
:列出 YAML 文件影响的主机列表。
--list-tags
:列出文件中的标签。
Ansible playbook 是一种强大的自动化工具,通过详细的配置和灵活的语法,可以实现高效的系统管理和部署,其核心在于理解并正确使用 hosts、tasks、handlers 等关键元素,同时合理利用各种命令和选项来优化 playbook 的执行效果。
到此,以上就是小编对于playbook 配置_Ansible的问题就介绍到这了,希望介绍的几点解答对大家有用,有任何问题和不懂的,欢迎各位朋友在评论区讨论,给我留言。
本文来源于互联网,如若侵权,请联系管理员删除,本文链接:https://www.9969.net/85416.html