
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显示更为详细的执行过程
801

被折叠的 条评论
为什么被折叠?



