ansible的playbook应用介绍

ansible可以利用playbook来完成将任务写到一个YAML格式的文件中,然后利用ansible-playbook进行调用该文件,可重复执行

1.YAML文件的语法

YAML语法和其他高阶语言类似,并可以简单表达清单,散列表、标量等数据结构。其结构通过空格来展示,序列里的项用“-”来代表,Map你的键值用“;”分隔

YAML文件中列表的表示:列表中的所有元素均使用"-" 开头,例如:

– apple

– orange

– mango

YAML文件中字典的表示:字典通过key与value进行标识,如:

name: nwc

job: manager

sex: M

也可以将key:value放置于{}中进行表示,如

{name: nwc,job: manager,sex: M}

2.playbook的核心元素

Hosts:运行在哪些主机之上

Users:远程主机上,运行此任务的身份,不指名默认为root

Tasks:任务,也就是定义的具体任务,由模块定义的操作的列表

Variables:变量

Templates:模板,包含了模板语法编写的模板的文本文件

Handlers:处理器,类似Tasks,只是在特定的条件下才会触发的任务

某任务的状态在运行后为changed时,可通过"notify"通知给相应的handlers进行触发执行

Roles:角色,将Hosts剥离出去,由Tasks、Variables、Templates、Handlers所组成的一种特定的结构的集合

3.playbook的基础组件

hosts:运行指定任务的而目标主机,多个主机用:冒号分隔

remote_user:在远程主机上执行任务的用户;可以全局指定,也可以单个任务指定

sudo_user:表示以sudo方式运行任务时,切换为哪个用户身份运行

tasks:

任务列表,ansible运行任务的方式为,将第一个任务在所有主机上运行完成,然后再将第二个任务在所有主机上运行…,当某个任务在某个主机上运行出现故障,会造成任务终止,再次执行任务只需直接执行即可

定义任务列表,实际就是指明使用的模块和对应的模块参数来完成的任务的列表,其格式有两种:

(1)action:MODULE  ARGUMENTS

(2)MODULE:ARGUMENTS

注意:shell和command模块后面直接跟命令,而不是key=value的参数列表

 

4.playbook文件的执行 

playbook文件定义的任务要向执行,需要利用ansible-playbook命令进行调用

ansible-playbook命令用法:

检测语法

ansible-playbook –syntax-check /PATH/TO/PLAYBOOK.yaml

测试运行

ansible-playbook -C|–check /PATH/TO/PLAYBOOK.yaml

只检测执行指定的YAML文件可能会发生改变,但不真正执行操作,相当于测试运行

–list-hosts  检测YAML文件可能影响到的主机列表

–list-tasks   列出YAML文件的任务列表

–list-tags    列出YAML文件中的标签

运行

ansible-playbook /PATH/TO/PLAYBOOK.yml

可用选项:

不加任何选项表示完整运行整个playbook文件

-t TAGS,–tags=TAGS  表示只执行那个标签的任务

–skip-tags=SKIP_TAGS  表示除了指明的标签的任务,其他任务都执行

–start-at-task=START_AT   从指明的任务开始往下运行

通常情况下剧本的执行过程

先要利用 ansible-playbook -C|–check /PATH/TO/PLAYBOOK.yaml进行测试,测试没问题后

再利用 ansible-playbook /PATH/TO/PLAYBOOK.yml正式执行

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

lisanmengmeng

蚊子腿也是肉

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

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

打赏作者

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

抵扣说明:

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

余额充值