ansible playbook进阶(二)
handles和notify
首先写一个装包 复制配置文件 启动服务的playbook
由于本机已经装有httpd服务,直接用该配置文件。先将其拷贝到当前目录下,这样在playbook里面就可以使用相对路径
ansible-playbook -C httpd.yml 可预运行一遍,返回执行的改变数目
执行该脚本,并检查对应机器上80端口是否开启,配置文件中设置的是监听80
现在更改其配置文件,将监听端口改为8080
再次执行playbook
第一步为绿色 因为该包之前已经装过了 无需再装
第二步为黄色 因为配置文件有变,已经将新的更改过的配置文件复制到/etc下
第三步开启
再次查看被控主机上的监听端口 仍然为80,配置文件未生效
使用handlers触发器
再次执行剧本,查看结果
handlers可定义多个
tags
通过标签执行特定task
先关闭该服务 ,查看端口情况
-t 标签名 挑取一个标签来执行,这里执行服务启动,启动成功端口开启监听
测试多个标签
先卸载安装包
挑取两个标签执行
多个动作可指定同一个标签执行
–list-tags 查看playbook标签信息
变量的使用
setup为一个模块 可收集机器的系统状态信息
更改一台机器的主机名
-a支持过滤 专有写法
新写一个playbook 安装包名为一个变量
{{ 变量 }} 左右两边可空可不空
-e参数给变量赋值
多个标签的写法
卸掉包
在脚本里直接定义变量,而不是在命令行指定变量名
vars:
变量名:变量值
直接执行该脚本即可
变量使用在hosts文件中
查看主机名已更改成应用的变量
对一个分组设置一个公共的变量
执行脚本查看效果
若在脚本中已指定变量名 在命令行继续指定变量名 则按命令行中使用的生效
81 82 优先级高于80
查看系统自带变量
查看特定变量 -a 支持过滤
直接使用系统变量
收集主机系统信息
用一个文件存放变量,格式如下
调用变量