ansible剧本(playbook)- 快速入门

发布时间 2023-04-11 16:27:09作者: 往事已成昨天

ansible剧本(playbook)- 快速入门

Cloud研习社 Cloud研习社 2023-04-04 07:31 发表于山东
图片图片

教程每周二、四、六更新

图片剧本(playbook)比AD-Hoc模式更强大,可以一次性完成多个任务,类似于shell脚本,但是他有自己的语法规范。剧本可以实现服务自动部署、提高运维工作效率、减少出错几率。
# 先准备一个目录放我们的playbook文件。
[root@m01 ~]# mkdir ansible
[root@m01 ~]# cd ansible/

先来看个例子吧:

# 先写playbook
[root@m01 ansible]# cat first-playbook.yml
---
- hosts: com
  remote_user: root
  tasks:
    - name: hello host
      command: hostname

# 执行playbook。
[root@m01 ansible]# ansible-playbook first-playbook.yml

上面的Ansible-playbook 命令的执行结果如下:

图片

我们可以看到脚本执行成功。粉红色表示WARNING,是一些提示信息。对于命令执行成功的部分,以黄色显示。

注意:

在执行playbook之前,可以先检查一下yml文件的语法:ansible-playbook first-playbook.yml --syntax-check,如果语法没问题,则返回如下结果:

图片

如果有语法错误,则有如下报错信息:

图片

然后我们根据报错信息去修改yml文件即可。

 

上面我们就成功完成了第一个剧本。我们来看看这个剧本是怎么写的:

[root@m01 ansible]# cat first-playbook.yml
---                  # 开头是三个“减号”,表明这是一个yaml文件的开始
- hosts: com           # “减号”开头,空格后面写上hosts,指定需要操作的主机。冒号后面还有一个空格,然后写出主机或主机组的名字
  remote_user: root      # 指定在远程主机上执行命令的用户
  tasks:          # 书写任务的开始
    - name: hello host   # 开头四个空格,name指明任务的名字,冒号之后加空格,写出task名字
      command: hostname    # 模块名:[空格]需要执行的命令。这里我们用的command模块和hostname命令。

所以:

playbook是由一个或多个play组成的列表

playbook主要功能就是把一组主机通过ansible中的task定义好角色(所谓task其实就是使用ansible的一个module),把多个play组织在一个playbook中,即可以让他们联合起来按照实现写好的剧本“同唱一台大戏”。

playbook的语法是采用的YAML语法编写的。

 


 

雷哥开通了抖音(云计算雷哥)和微信视频号,求关注!!!和大家一起学习 技术!

图片

推荐阅读

 

《一站式教程之集群架构》:

 

ansible模块-cron模块

ansible模块-group模块

ansible模块-service(systemd)模块

ansible模块-user模块

ansible模块 - lineinfile模块

ansible模块 - blockinfile模块

 

 

看完本文有收获?请分享给更多人

推荐关注「Cloud研习社」,带你从零开始掌握云计算技术!

Cloud研习社
为Linux云计算零基础同学服务,致力于打造一套完整的linux云计算教程。包括新手学习路线、linux、存储、集群架构以及Docker,K8S,DevOps等
180篇原创内容

图片


图片

 

收录于合集 #一站式教程
 220
上一篇ansible模块实战练习下一篇ansible剧本-YAML语法
阅读 111