ansible(四) playbook中变量使用

Playbook中变量使用


 变量名:仅能由字母、数字和下划线组成,且只能以字母开头
 变量来源:

  1.   ansible setup facts 远程主机的所有变量都可直接调用
  2.   在/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

ansible(四) playbook中变量使用_第1张图片

 使用-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为文件名的空文件

设置主机清单中的通用变量

ansible(四) playbook中变量使用_第2张图片

 该设置为websrvs主机清单设置通用变量mark

在playbook中设置变量

ansible(四) playbook中变量使用_第3张图片

还可将所有变量存放在一个专门的yml文件中。

【优先级次序:-e > playbook  >  yml  >  host】

 

你可能感兴趣的:(ansible(四) playbook中变量使用)