Ansible-Playbook 剧本语法

在这里插入图片描述

1. 简介:

playbook也叫剧本
play的主要功能在于将预定义的一组主机,装扮成事先通过ansible中的task定义好的角色。
通过ansible命令直接调用yml语言写好的playbook,playbook由多条play组成
每条play都有一个任务(task)相对应的操作,然后调用模块modules,应用在主机清单上,通过ssh远程连接从而控制远程主机或者网络设备

Task实际是调用ansible的一个module,将多个play组织在一个playbook中,
即可以让它们联合起来,按事先编排的机制执行预定义的动作
Playbook采用YAML语言编写。

2.Yaml简介

YAML是一个可读性高,用来表达数据序列的格式。YAML参考了其它多种语言,包括:C语言、Python、Perl,并从XML、电子邮件的数据格式中获得灵感。Clark Evans在2001年首次发表了这种语言。当前已经有数种编程语言或脚本语言支持这种语言。最新稳定版本为1.2,于2009年发布。YAML文件扩展名为.yaml或.yml。

具体了解查看 :https://blog.csdn.net/fengbingchun/article/details/88090609

3.书写playbook

ansible-playbook useradd.yml -e key=value

-e 代表传参数 后面等同于json 键值对

定义YML

playbook 的核心元素

1.Tasks:任务,由模板定义的操作列表
2.Variables:变量
3.Templates:模板,即使用模板语法的文件
4.Handlers:处理器 ,当某条件满足时,触发执行的操作
5.Roles:角色

每一个 Play 都要指定操作的目标主机,并且可以指定用哪个身份去完成执行的步骤(Tasks)。例如:

- hosts: webservers
  remote_user: root
  tasks:
    - name: test connection
      remote_user: yourname
      sudo: yes

hosts:用于指定要执行指定任务的主机,可以是一个或多个,由逗号分隔符分隔的主机组。
remote_user:用于指定远程主机上执行任务的用户,它也可用于各tasks中。
sudo:如果设置为 yes 则获取 root 权限去执行该任务,如果需要在使用 sudo 时指定密码,可在运行 ansible-playbook 命令时加上选项 --ask-sudo-pass (-K)。
connection:通过什么方式连接到远程主机(默认 ssh)。

在playbook中对于多个重复的取值我们可以把内容定义在配置文件中去在多个yml 以及task都可以获取到

例如把登录主机用户写在配置文件

- hosts: webservers
  remote_user: root
  tasks:
    - name: test connection
      remote_user: {{ yourname }} 
      sudo: yes

配置文件 config.ini

yourname=user

调用方法

ansible-playbook -i config.ini user.yml -vvv  

-v :显示简要的执行过程,-vv显示较为详细的过程,-vvv显示更为详细的执行过程

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Fan Wang&YuanyuanLuo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值