欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-05-29 09:42:37
...

主机名,网络设备名,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               #运行


 

相关标签: redhat