ansible-playbook

  • 我们之前讲到的ansible的相关知识,在使用时都是通过一条一条的命令来实现的,但是在实际的生产环境中,我们肯定一次性要执行很多条命令,而playbook就是整合了我们的ansible命令,类似于我们的shell脚本,但是它不是简单的ansible命令的堆积,在playbook中使用的时YAML语法,并且playbook脚本名的后缀一定是.yml或者.yaml
  • 简单示例:
  • 假设我们现在要一次性在远程主机上执行ping和创建目录的动作,这个按照之前讲到的ansible命令,我们需要执行两条命令才能够完成,现在我们通过编辑playbook脚本来完成。

ansible playbook中如何使用command ansible playbook ping_IP


脚本解释:
操作对象:testB
在主机中以指定用户身份进行操作:root
tasks后是要执行的动作
第一个动作名为:ping the host(自己定义)
使用的模块:ping(没有指定参数)
第二个动作名为:make directory haha(自己定义)
使用的模块:file
指定参数:路径及名称:/testdir/haha;类型:目录

  • yaml语法中需要注意的几点:
  • 1、脚本以---开头
  • 2、每个部分的开头需要有-和一个空格
  • 3、参数名后面要加冒号,冒号后要有一个空格才能写具体内容

ansible playbook中如何使用command ansible playbook ping_IP_02


ansible playbook中如何使用command ansible playbook ping_IP_03


ansible playbook中如何使用command ansible playbook ping_创建文件_04


示例二:修改操作对象

ansible playbook中如何使用command ansible playbook ping_参数信息_05


ansible playbook中如何使用command ansible playbook ping_IP_06


ansible playbook中如何使用command ansible playbook ping_参数信息_07


ansible playbook中如何使用command ansible playbook ping_创建文件_08


ansible playbook中如何使用command ansible playbook ping_创建文件_09


ansible playbook中如何使用command ansible playbook ping_创建文件_10


示例三:创建文件

ansible playbook中如何使用command ansible playbook ping_IP_11


ansible playbook中如何使用command ansible playbook ping_IP_12


ansible playbook中如何使用command ansible playbook ping_创建文件_13


示例四:参数信息可以写在同一行,不使用冒号的格式,可以使用=号连接

ansible playbook中如何使用command ansible playbook ping_参数信息_14


ansible playbook中如何使用command ansible playbook ping_IP_15


ansible playbook中如何使用command ansible playbook ping_创建文件_16

  • 参数信息也可以分开来写,不使用冒号的格式,使用=号连接



    示例五:name参数可以不写,默认为使用的模块名(但这里建议不要省略name参数!)
    注意:删掉name参数后,file作为开头,所以需要加-

ansible playbook中如何使用command ansible playbook ping_IP_17


ansible playbook中如何使用command ansible playbook ping_参数信息_18


示例六:name参数可以写在模块的后面(顺序没有影响)

ansible playbook中如何使用command ansible playbook ping_IP_19


示例六:还可以将hosts写成IP、主机名或者别名,只要与/etc/ansible/hosts内的文件保持一致即可

ansible playbook中如何使用command ansible playbook ping_IP_20


ansible playbook中如何使用command ansible playbook ping_参数信息_21