redhat(14)-ansible(3)-事实变量

主机名,网络设备名,IP地址,CPU,可用磁盘等是主机的事实变量。
获取事实变量把其放在playbook中是经常要做的事情。
 1.系统自带 ansible_facts[]
 2.自定义事实变量
 3.示例

 


 1.系统自带 ansible_facts[]
         查看所有事实变量:
                  现在                                                过去
         ansible_facts['hostname']             ansible_hostname
  以下用命令行的方式查看了一些基本信息:

 ansible -m setup    localhost  
#          setup模块 主机名    参数
 ansible -m setup serverb -a 'filter=ansible_default_ipv4'
 ansible -m setup serverb -a 'filter=ansible_eth0'
 ansible -m setup serverb -a 'filter=ansible_facts['hostname']'
 ansible -m setup serverb -a 'filter=ansible_facts['fqdn']' 
ansible -m setup serverb -a 'filter=ansible_facts['default_ipv4']['address']'
ansible -m setup serverb -a 'filter=ansible_facts['interface']'
ansible -m setup serverb -a 'filter=ansible_facts['devices']['vda']['partitions']['vda1']'
ansible -m setup serverb -a 'filter=ansible_facts['dns']['nameservers']'
ansible -m setup serverb -a 'filter=ansible_facts['kernel']'
ansible-playbook --syntax-check facts.xml #语法检查
ansible-playbook  facts.yml               #运行


 2.自定义事实变量
     完成一项任务,通常还需要一些其它的变量。
    2.1 文件夹:/etc/ansible/facts.d
    2.2 文件以 .fact结尾
   
 3.示例
   1.创建 vim /etc/ansible/facts.d/myfacts.fact
 

[packages]
web_package = httpd
db_package = mariadb-server

[users]
user1 = joe
user2 = jane

2.调用变量 编写 myfacts.yml
 

---
- name: fact dump
   hosts: serverb
   tasks:
   - name: print  ansible_facts.ansible_local['myfacts']['users']['user1'] 
     debug:
       var: ansible_facts.ansible_local['myfacts']['users']['user1'] 

3.运行ansible-playbook 
 


ansible all      --list-hosts
ansible-playbook --syntax-check myfacts.yml #语法检查
ansible-playbook  myfacts.yml               #运行


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值