9.ansible变量之fact

fact简介

ansible有一个模块叫setup,用于获取远程主机的相关信息,并可以将这些信息作为变量在playbook里进行调用。而

setup模块获取这些信息的方法就是依赖于fact。

# ansible test -m setup
10.1.61.187 | SUCCESS => {
   "ansible_facts": {
       "ansible_all_ipv4_addresses": [
           "10.1.61.187"
       ],
       "ansible_all_ipv6_addresses": [
           "fe80::f816:3eff:fe4f:6611"
       ],
       "ansible_apparmor": {
           "status": "disabled"
       },
       "ansible_architecture": "x86_64",
       "ansible_bios_date": "04/01/2014",
       "ansible_bios_version": "Ubuntu-1.8.2-1ubuntu1~cloud0",
 
       ...output omitted...
}

setup获取的这些信息,都是可用于该主机的变量。

setup模块其他用法示例:

# 查看主机内存信息
ansible 10.212.52.252 -m setup -a 'filter=ansible_*_mb'

# 查看地接口为eth0-2的网卡信息
ansible 10.212.52.252 -m setup -a 'filter=ansible_eth[0-2]'

# 将所有主机的信息输入到/tmp/facts目录下,每台主机的信息输入到主机名文件中(/etc/ansible/hosts里的
ansible all -m setup --tree /tmp/facts

自定义fact

1.手动设置fact

ansible除了能获取到预定义的fact的内容,还支持手动为某个主机定制fact。称之为本地fact。本地fact默认存放于被控

端的 /etc/ansible/facts.d 目录下,如果文件为 ini 格式或者 json 格式,ansible会自动识别。以这种形式加载的fact是key为 ansible_local 的特殊变量。

下面是一个简单的示例,在ansibler主控端定义一个 ini 格式的custom.fact文件内容如下:

[general]
package = httpd
service = httpd
state =
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值