playbook-拓展
一。Handles
1. Handlers 在发生改变时执行的操作
2. handlers也是一些task的列表,通过名字来引用,它们和一般的task并没有什么区别。
3. handlers是由notify调用的,如果没有被notify,handlers不会执行,等到play中的所有task执行完成之后
也不会被执行一次
4. Handlers最佳的应用场景是用来重启服务,或者触发系统重启操作,除此以外很少用到了
二。环境变量:
1. 为远程主机上的用户指定环境变量
2. 预定义环境变量
对于某一个play而言,我们可以使用environment选项来为其设置单独的环境变量
var:
var_proxy:
http_proxy: http://xxxx.com
https_proxy: http://xxx.com
task:
- name: use proxy
get_url: url=http://www.example.com/file.tar.gz dest=~/download/
environment: var_proxy
三。 变量:
1. 变量赋值的两种形式:
1.1 Inventory的方式: =
1.2 playbook的方式: k/v hash模式,eg: xxx:xx
2. 定义的途径:
2.1 外部加载模式: --extra-vars
2.1.1 ansible-playbook example.yml --extra-vars 'foo=bar'
2.1.2 ansible-playbook example.yml --extra-vars '@even_more_vars.yml'
此处even_more_vars是存放变量的一个文件
2.2 playbook方式:
2.2.1 内部调用
2.2.2 文件调用
3. 在Inventory里定义变量
。。。。
4. 注册变量
把操作的结果(标准输入或输出)保存到某个变量里的过程,由register模块实现。
command: forover list
register: forover_list
把command命令的结果存在 forover_list变量里
5. 高阶变量
5.1 列表变量
foo:
- one
- two
- three
调用方式:foo[0],foo[1],foo[2]
5.2 ..