如何在Ansible中配置Playbook以实现自动化运维?

playbook简介

如何在Ansible中配置Playbook以实现自动化运维?插图1

1、基础介绍

Playbook 是 Ansible 用于配置、部署和管理被控节点的剧本,通过详细的描述,执行其中的一系列 tasks,可以让远端主机达到预期的状态。

Play: 定义的是主机的角色。

Task: 定义的是具体执行的任务。

Playbook: 由一个或多个 play 组成,一个 play 可以包含多个 task 任务。

2、优势

功能比 ad-hoc 更全。

能很好地控制先后执行顺序以及依赖关系。

语法展现更加直观。

Ad-hoc 无法持久使用,Playbook 可以持久使用。

3、语法格式

采用 YAML(Yet Another Markup Language)语法格式。

缩进: 使用两个空格固定缩进风格表示层级结构,不能使用 tabs。

冒号: 以冒号结尾的除外,其他所有冒号后面必须有空格。

短横线: 表示列表项,使用一个短横杠加一个空格,多个项使用同样的缩进级别作为同一列表。

4、核心元素

如何在Ansible中配置Playbook以实现自动化运维?插图3

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 等所组成的一种特定的结构集合。

如何在Ansible中配置Playbook以实现自动化运维?插图5

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

小末小末
上一篇 2024年10月27日 01:40
下一篇 2024年10月27日 01:52

相关推荐