根据不同cpu个数生成不同的配置文件,以nginx为例
建议创建文件夹存放templates
playbook和templates平级存放(建议)
template本身为一个模块 ansible-doc -s template -s简要查看信息
template模块只能用于写入playbook 不能命令行调用
以nginx的配置文件为例 生成一个template文件,后缀必须为 .j2
template: 后面可写绝对路径 ,若存放在templates文件夹下 则可自动找到该模板
类似于copy功能 源文件为模板文件 后缀为 .j2 现在的目的地址则该改为正常的格式
运行该脚本 并查看是否安装上 80端口
进程数和CPU数是一样的
安装n’gin’x需要配置epel源
setup模块查看系统cpu相关变量
修改template文件 使用该变量
修改之前写过的playbook,由于更改了配置文件,必须重启该服务 增加一个触发器
注意handlers和tasks 位置是平等的
执行该playbook
到被控主机上查看nginx进程数量
将变量定义到hosts文件中
更改模板中的监听端口 使用定义在hosts文件中的变量
执行playbook
不同主机监听了不同的端口号
使用在playbook中定义的变量
playbook中变量优先级高于hosts文件
根据centOS不同的版本使用不同的模板文件
6和7的配置文件是不一样的
可看到跳过的效果
模板支持迭代
When +迭代
添加组
查看
变量名 变量列表
编写template 模板文件 模板文件内使用for子句
ports为变量列表 来自playbook中的变量名
查看结果
将变量列表写成字典形式
模板文件里写法有变 指定键名
多个键值对
p为取一组变量 一组变量内有多个键值对(-为分隔) 指定需要的键值(port)
效果
if
注释掉变量列表里的一部分键值对
效果