playbook编写(一)ansible理论知识
handles和notify
首先写一个装包 复制配置文件 启动服务的playbook

由于本机已经装有httpd服务,直接用该配置文件。先将其拷贝到当前目录下,这样在playbook里面就可以使用相对路径

ansible-playbook -C httpd.yml 可预运行一遍,返回执行的改变数目
执行该脚本,并检查对应机器上80端口是否开启,配置文件中设置的是监听80

现在更改其配置文件,将监听端口改为8080
再次执行playbook
第一步为绿色 因为该包之前已经装过了 无需再装
第二步为黄色 因为配置文件有变,已经将新的更改过的配置文件复制到/etc下
第三步开启
再次查看被控主机上的监听端口 仍然为80,配置文件未生效

使用handlers触发器

再次执行剧本,查看结果

handlers可定义多个

handlers具体用法
tags

通过标签执行特定task

先关闭该服务 ,查看端口情况


-t 标签名 挑取一个标签来执行,这里执行服务启动,启动成功端口开启监听

测试多个标签
先卸载安装包


挑取两个标签执行

多个动作可指定同一个标签执行
–list-tags 查看playbook标签信息

变量的使用

setup为一个模块 可收集机器的系统状态信息

更改一台机器的主机名

-a支持过滤 专有写法

新写一个playbook 安装包名为一个变量
{{ 变量 }} 左右两边可空可不空

-e参数给变量赋值

多个标签的写法


卸掉包

在脚本里直接定义变量,而不是在命令行指定变量名
vars:
变量名:变量值

直接执行该脚本即可

变量使用在hosts文件中


查看主机名已更改成应用的变量

对一个分组设置一个公共的变量


执行脚本查看效果


若在脚本中已指定变量名 在命令行继续指定变量名 则按命令行中使用的生效

81 82 优先级高于80

查看系统自带变量

查看特定变量 -a 支持过滤

直接使用系统变量

收集主机系统信息


用一个文件存放变量,格式如下

调用变量


















