##1.变量命名##
只能包含数字,下划线,字母
只能用下划线或字母开头
##2.变量级别##
全局: 从命令行或配置文件中设定的
paly: 在play和相关结构中设定的
主机: 由清单,事实收集或注册的任务
变量优先级设定:
狭窄范围有限与广域范围
##3.变量设定和使用方式##
#1.在playbook中直接定义变量
---
- name: test var
hosts: all
vars:
USER: westosuser
#2.在文件中定义变量#
vim user_list.yml
---
user: westosuser
vim westos.yml
---
- name: Create User
hosts: all
vars_files:
- ./user_list.yml
[devops@nodea111 .ansible]$ vim user_list.yml
---
USER1:
NAME: user1
UID: 666
[devops@nodea111 .ansible]$ vim user.yml
- name: create user
hosts: westos
vars_files:
- ./user_list.yml
tasks:
- name: create user1
user:
name: "{
{USER1['NAME']}}"
uid: "{
{USER1.UID}}"
[devops@nodea111 .ansible]$ ansible-playbook user.yml
#3.使用变量#
tasks:
- name: create user
user:
name: "{
{ USER }}"
#4.设定主机变量和清单变量#
#在定义主机变量和清单变量时使用
vim inventory
[westos_list1]
172.25.0.254
172.25.0.1
[westos_list2]
172.25.0.2
[westos_list3]
172.25.0.3
[westos_group:children]
westos_list2
westos_list3
[westos_list1:vars]
USER=westos1
[westos_group:vars]
USER=westos2
[devops@nodea111 .ansible]$ cat inventory
[westos]
172.25.254.211
[westos:vars]
WESTOS=hello
[devops@nodea111 .ansible]$ vim var.yml
- name: test
hosts: westos
tasks:
- debug:
msg: "{
{WESTOS}}"
[devops@nodea111 .ansible]$ ansible-playbook var.yml
PLAY [test] *****************************************************************************
TASK [Gathering Facts] ******************************************************************
ok: [172.25.254.211]
TASK [debug] ****************************************************************************
ok: [172.25.254.211] => {
"msg": "hello"
}
PLAY RECAP ******************************************************************************
172.25.254.211 : ok=2 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
#5.目录设定变量#
group_vars ##清单变量,目录中