Ansible详解(七)——Ansible palybook简单使用

今天继续给大家介绍Linux运维相关知识,本文主要内容是Ansible的palybook的简单运用。

一、Ansible Playbook格式

一个简单的Ansible Playbook示例如下:

---
- hosts: exp
  remote_user: root
  tasks:
  - name: Install Apache by YUM
    yum: name=httpd state=installed
  - name: Start Apache
    service: name=httpd state=started

上述Ansible Playbook剧本非常简单,可以控制exp模块的设备安装Apache并开启服务。看上去尽管简单,但是由于YAML的格式非常严格,上述Playbook在编写上却有点棘手。
首先,开头用三个短杠,这是Ansible Playbook的标准开头格式。在第二行,以一个短杠开头,后面跟一个空格。这个空格,必须存在且不能多加! 否则,就会因为YAML格式错误而无法执行。hosts参数后面紧跟着的是一个因为冒号,冒号后面也必须跟一个空格。这个空格和刚才相同,必须存在且不能多加! 之后,写的是Ansible控制的主机。其他的诸行,都有类似上述格式的存在,参数后面都存在冒号,冒号后面有空格。并且,空格必须存在且不能多加! 第三行的参数是remote_user,这个参数要和hosts严格对齐! 否则,Ansible也会报错。后面的tasks任务和name前面的短杠也要对齐,name的下一行模块名要和name的“n”字母对齐。
可以看出,一个很简单的Ansible的Playbook文件就有这么多的格式,并且还十分严格。有时我们看了很多的Playbook,但是自己在实际撰写Playbook时,却总是会出现这样那样的错误,就是由于YAML的严格格式造成的。因此,我们要多下手去练,才能掌握Ansible Playbook的撰写。
上述Playbook,在编写完成后,如下所示:
在这里插入图片描述
注意,上述Playbook示例,只是Ansible中非常简单的一个示例,在生产环境中Ansible结合诸多变量、模板、role,写出的Playbook会复杂的多,也能完成更加复杂的任务。
但是,上述基本和简单的Playbook是一切复杂的基础,因此,希望大家能够认真学习。

二、Ansible Playbook执行

当我们完成上述Playbook的撰写后,可以使用ansible-playbook命令来执行。假设我们把上述Playbook存储成tmp.yml文件。(事实上,我们应该把Playbook存储成.yml结尾的文件)那么我们执行该剧本命令如下:

ansible-playbook tmp.yml

上述命令结果如下:
在这里插入图片描述
在被控制设备上,我们先删除Apache,然后等待Ansible设备上Playbook执行完毕后,我们查看刚刚执行的效果,结果如下:
在这里插入图片描述
可以看出,该设备上重新安装了Apache,并且开启了该服务,我们的Playbook执行成功!
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200

猜你喜欢

转载自blog.csdn.net/weixin_40228200/article/details/123488366