根据不同cpu个数生成不同的配置文件,以nginx为例

ansible 使用template

ansible 使用template

建议创建文件夹存放templates
ansible 使用template
playbook和templates平级存放(建议)

ansible 使用template


ansible 使用template
template本身为一个模块 ansible-doc -s template -s简要查看信息

ansible 使用template

template模块只能用于写入playbook 不能命令行调用

以nginx的配置文件为例 生成一个template文件,后缀必须为 .j2

ansible 使用template

template: 后面可写绝对路径 ,若存放在templates文件夹下 则可自动找到该模板
类似于copy功能 源文件为模板文件 后缀为 .j2 现在的目的地址则该改为正常的格式

ansible 使用template

运行该脚本 并查看是否安装上 80端口

ansible 使用template

ansible 使用template

进程数和CPU数是一样的

ansible 使用template


安装n’gin’x需要配置epel源

ansible 使用template

ansible 使用template

ansible 使用template


setup模块查看系统cpu相关变量

ansible 使用template

修改template文件 使用该变量

ansible 使用template

修改之前写过的playbook,由于更改了配置文件,必须重启该服务 增加一个触发器
注意handlers和tasks 位置是平等的

ansible 使用template

执行该playbook

ansible 使用template

到被控主机上查看nginx进程数量

ansible 使用template

将变量定义到hosts文件中

ansible 使用template

更改模板中的监听端口 使用定义在hosts文件中的变量

ansible 使用template

执行playbook

ansible 使用template

不同主机监听了不同的端口号

ansible 使用template

使用在playbook中定义的变量

ansible 使用template

playbook中变量优先级高于hosts文件

ansible 使用template

ansible 使用template
ansible 使用template
ansible 使用template

根据centOS不同的版本使用不同的模板文件
6和7的配置文件是不一样的

ansible 使用template

可看到跳过的效果

ansible 使用template

模板支持迭代

ansible 使用template

ansible 使用template

When +迭代

ansible 使用template

ansible 使用template

添加组

ansible 使用template
查看
ansible 使用template

ansible 使用template

ansible 使用template

ansible 使用template

ansible 使用template

ansible 使用template

ansible 使用template

ansible 使用template

变量名 变量列表

ansible 使用template

编写template 模板文件 模板文件内使用for子句
ports为变量列表 来自playbook中的变量名
ansible 使用template
查看结果
ansible 使用template
将变量列表写成字典形式

ansible 使用template
模板文件里写法有变 指定键名
ansible 使用template

多个键值对

ansible 使用template

p为取一组变量 一组变量内有多个键值对(-为分隔) 指定需要的键值(port)

ansible 使用template
ansible 使用template

效果
ansible 使用template

if

ansible 使用template

注释掉变量列表里的一部分键值对
ansible 使用template
ansible 使用template
效果
ansible 使用template

相关文章: