ansible(四) playbook中变量使用
Playbook中变量使用
变量名:仅能由字母、数字和下划线组成,且只能以字母开头
变量来源:
- ansible setup facts 远程主机的所有变量都可直接调用
- 在/etc/ansible/hosts中定义
利用setup模块,简单调用几个变量
主机名变量:ansible_fqdn
cpu变量:ansible_processor_vcpus
版本号变量:ansible_distribution_major_version
示例:编写playbook实现目标主机生成 主机名.log 的空文件
#vim vars.yml
---
- hosts: websrvs
remote_user: root
tasks:
- name: create log file
file: name=/data/{{ ansible_fqdn }}.log state=touch
使用-e 进行自定义变量
ansible-playbook –e varname=value
-e自定义变量的优先级高于setup调用的变量
一次性对多个变量赋值:ansible-playbook -e 'ansible_fqdn="testfile" pname=samba' vars.yml
对主机清单中的变量
---
- hosts: websrvs
remote_user: root
tasks:
- name: create log file
file: name=/data/{{ http_port }}.log state=touch
- name: install package
yum: name={{pname}}
#ansible-playbook -e pname=samba vars.yml
对目标主机安装samba,并分别生成对应http_port.log为文件名的空文件
设置主机清单中的通用变量
该设置为websrvs主机清单设置通用变量mark
在playbook中设置变量
还可将所有变量存放在一个专门的yml文件中。
【优先级次序:-e > playbook > yml > host】