1、变量命名
只能包含数字,下划线,字母
只能用下划线或字母开头
2、变量级别
全局:从命令行或配置文件中设定的
play:在play和相关结构中设定的
主机:由清单,事实收集或注册的任务
变量优先级设定:play>主机>全局
3、变量设定和使用方式
1.在playbook中直接定义变量
---
- name: test var
hosts: all
vars:
- NAME: westosuser
tasks:
- name: create user
user:
name: "{
{NAME}}" NAME的值,变量的表示方式
state: present
2.在文件中定义变量
vim user_list.yml
---
NAME:westosuser
vim westos.yml
---
- name: Create User
hosts:172.25.254.100
vars_files: ./user_list.yml
tasks:
- name:create user
user:
name:"{
{NAME}}"
state:present
ansible-playbook westos.yml
3.在清单里定义变量
inventory
[test]
172.25.254.100
[test:vars]
NAME:westoslinux
使清单生效
vim test.yml
---
- name: test
hosts:test
tasks:
- name:create user
user:
name:"{
{NAME}}"
state:present
ansible-playbook test.yml
4.目录设定变量
group_vars 清单变量,目录中的文件名称与主机清单名称一致
host_vars 主机变量,目录中的文件名称与主机名称一致
vim group_vars/test
---
NAME: westoslinux1
vim test.yml
---
- name: test
hosts: test
tasks:
- name:create user
user:
name:"{
{NAME}}"
state:present
ansible-playbook test.yml
vim test.yml
---
- name: test
hosts: test
tasks:
- name:create user
debug:
msg:"{
{NAME}}"
vim test.yml
---
- name: test
hosts: test
tasks:
- name:create user
debug:
var:NAME
mkdir host_vars
cd host_vars/