一 点睛
在实际应用场景中,我们希望一些任务、配置根据设备性能的不同而产生差异,比如使用本机CPU核数动态配置Nginx的worker_processes参数,可能有一组主机的应用配置文件几乎相同,但略有不同的配置项可以引用变量。在Ansible中使用变量的目的是方便处理系统之间的差异。
变量名的命名规则由字母、数字和下划线组合而成,变量必须以字母开头,如“foo_port”是一个合法的变量,“foo5”也是可以的,“foo-port”、“foo port”、“foo.port”和“12”都是非法的变量命名。
二 Jinja2过滤器
1 点睛
Jinja2是Python下一个广泛应用的模板引擎,它的设计思想类似于Django的模板引擎,并扩展了其语法和一系列强大的功能,官网地址: http://jinja.pocoo.org/。下面介绍一下Ansible使用Jinja2强大的过滤器 (Filters)功能。
2 格式
{ {变量名|过滤方法}}
3 示例
实现获取一个文件路径变量过滤出文件名。
{
{ path | basename }}
获取文件所处的目录名
{
{ path | dirname }}
从“/etc/profile”中过滤出文件 名“profile”,并输出重定向到/tmp/testshell文件中。
---
- hosts: 192.168.1.21