ansible-playbook变量及jinja2过滤器介绍

1.合法的变量
纯字符: foo
字符加下划线: foo_te
字符开头跟数字: foo12
变量需要遵守yaml语法,变量名不能出现'-'号和数字
值中出现减号‘-’,需要引号把整个字段引起来。
如:sef-test 不合法
12 不合法

2.变量存在的位置
主机清单中的变量
playbook中的变量和变量文件
playbook中变量的引用使用 {{ }}引起来。
例:
---
- hosts: "{{ host_ip }}"
remote_user: root
vars:
dest_path: /tmp
vars_files: - /vars/external_vars.yml
命令行中提供的变量,优先级最高,
例:
--- - hosts: ' {{ hosts }} ' remote_user: ' {{ user }} ' tasks:
ansible-playbook -e "hosts=localhost user=root"

过滤器
适用于列表的过滤器
{{ list | min }} 取列表中最小值
{{ list |max }} 取列表中最大值
{{ list1 | unique }} 滤重
- shell: echo {{ string_value | quote }} 给变量值加引号
{{ path | basename }} /usr/local/test 拿到test
{{ path | splitext }} 以点为分隔拆开字符串
{{ path | relpath ( '/etc' ) }} 替换

你可能感兴趣的:(运维自动化)