• 【ansible】facts 获取硬件信息


    facts 指的是 ansible_facts 变量,ansible 中使用 setup 模块来获取,包含系统的大部分基础硬件信息,

    [root@10_1_162_39 host_vars]# ll
    total 16
    -rw-r--r-- 1 root root   44 May  5 14:55 hosts
    -rw-r--r-- 1 root root  134 May  5 09:40 test1.yaml
    -rw-r--r-- 1 root root  200 May  5 16:56 test.playbook

    获取所有变量的命令如下,其中的变量可以在 playbook 入口 yaml 文件中使用,本文在 test.playbook 中引用

    [root@10_1_162_39 host_vars]# ansible 10.1.162.18 -m setup -i hosts 
    10.1.162.18 | SUCCESS => {
        "ansible_facts": {
            "ansible_all_ipv4_addresses": [
                "192.168.238.129"
            ], 
            "ansible_all_ipv6_addresses": [
                "fe80::20c:29ff:fe21:bd17"
            ], 
            "ansible_architecture": "x86_64", 
            "ansible_bios_date": "07/02/2015", 
            "ansible_bios_version": "6.00", 
            "ansible_cmdline": {
                "BOOT_IMAGE": "vmlinuz0", 
                "initrd": "initrd0.img", 
                "liveimg": true, 
                "nodiskmount": true, 
                "nolvmmount": true, 
                "quiet": true, 
                "rd.dm": "0", 
                "rd.luks": "0", 
                "rd.md": "0", 
                "rhgb": true, 
                "ro": true, 
                "root": "live:CDLABEL=CentOS-6.8-x86_64-LiveCD", 
                "rootfstype": "auto"
            }, 
            "ansible_date_time": {
                "date": "2017-05-05", 
                "day": "05", 
                "epoch": "1494018155", 
                "hour": "17", 
                "iso8601": "2017-05-05T21:02:35Z", 
                "iso8601_basic": "20170505T170235836807", 
                "iso8601_basic_short": "20170505T170235", 
                "iso8601_micro": "2017-05-05T21:02:35.836916Z", 
                "minute": "02", 
                "month": "05", 
                "second": "35", 
                "time": "17:02:35", 
                "tz": "EDT", 
                "tz_offset": "-0400", 
                "weekday": "Friday", 
                "weekday_number": "5", 
                "weeknumber": "18", 
                "year": "2017"
            }, 
            "ansible_default_ipv4": {
                "address": "192.168.238.129", 
                "alias": "eth0", 
                "broadcast": "192.168.238.255", 
                "gateway": "192.168.238.2", 
                "interface": "eth0", 
                "macaddress": "00:0c:29:21:bd:17", 
                "mtu": 1500, 
                "netmask": "255.255.255.0", 
                "network": "192.168.238.0", 
                "type": "ether"
            }, 
            "ansible_default_ipv6": {}, 
            "ansible_devices": {
                "sda": {
                    "holders": [], 
                    "host": "SCSI storage controller: LSI Logic / Symbios Logic 53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI (rev 01)", 
                    "model": "VMware Virtual S", 
                    "partitions": {
                        "sda1": {
                            "holders": [], 
                            "sectors": "41929587", 
                            "sectorsize": 512, 
                            "size": "19.99 GB", 
                            "start": "63", 
                            "uuid": "e211add0-38ea-4214-9c56-b193e6749d4f"
                        }
                    }, 
                    "removable": "0", 
                    "rotational": "1", 
                    "sas_address": null, 
                    "sas_device_handle": null, 
                    "scheduler_mode": "cfq", 
                    "sectors": "41943040", 
                    "sectorsize": "512", 
                    "size": "20.00 GB", 
                    "support_discard": "0", 
                    "vendor": "VMware,"
                }, 
                "sr0": {
                    "holders": [], 
                    "host": "IDE interface: Intel Corporation 82371AB/EB/MB PIIX4 IDE (rev 01)", 
                    "model": "VMware IDE CDR10", 
                    "partitions": {}, 
                    "removable": "1", 
                    "rotational": "1", 
                    "sas_address": null, 
                    "sas_device_handle": null, 
                    "scheduler_mode": "cfq", 
                    "sectors": "1437696", 
                    "sectorsize": "2048", 
                    "size": "2.74 GB", 
                    "support_discard": "0", 
                    "vendor": "NECVMWar"
                }
            }, 
            "ansible_distribution": "CentOS", 
            "ansible_distribution_major_version": "6", 
            "ansible_distribution_release": "Final", 
            "ansible_distribution_version": "6.8", 
            "ansible_dns": {
                "domain": "localdomain", 
                "nameservers": [
                    "192.168.238.2"
                ], 
                "search": [
                    "localdomain", 
                    "centos"
                ]
            }, 
            "ansible_domain": "centos", 
            "ansible_env": {
                "G_BROKEN_FILENAMES": "1", 
                "HOME": "/root", 
                "LANG": "en_US.UTF-8", 
                "LESSOPEN": "||/usr/bin/lesspipe.sh %s", 
                "LOGNAME": "root", 
                "MAIL": "/var/mail/root", 
                "PATH": "/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin", 
                "PWD": "/root", 
                "SELINUX_LEVEL_REQUESTED": "", 
                "SELINUX_ROLE_REQUESTED": "", 
                "SELINUX_USE_CURRENT_RANGE": "", 
                "SHELL": "/bin/bash", 
                "SHLVL": "2", 
                "SSH_ASKPASS": "/usr/libexec/openssh/gnome-ssh-askpass", 
                "SSH_CLIENT": "10.1.162.39 39522 22", 
                "SSH_CONNECTION": "10.1.162.39 39522 192.168.238.129 22", 
                "SSH_TTY": "/dev/pts/5", 
                "TERM": "linux", 
                "USER": "root", 
                "_": "/usr/bin/python"
            }, 
            "ansible_eth0": {
                "active": true, 
                "device": "eth0", 
                "features": {
                    "fcoe_mtu": "off [fixed]", 
                    "generic_receive_offload": "on", 
                    "generic_segmentation_offload": "off [requested on]", 
                    "highdma": "off [fixed]", 
                    "large_receive_offload": "off [fixed]", 
                    "loopback": "off [fixed]", 
                    "netns_local": "off [fixed]", 
                    "ntuple_filters": "off [fixed]", 
                    "receive_hashing": "off [fixed]", 
                    "rx_checksumming": "off [fixed]", 
                    "rx_vlan_filter": "off [fixed]", 
                    "rx_vlan_offload": "off [fixed]", 
                    "scatter_gather": "off", 
                    "tcp_segmentation_offload": "off", 
                    "tx_checksum_fcoe_crc": "off [fixed]", 
                    "tx_checksum_ip_generic": "off [fixed]", 
                    "tx_checksum_ipv4": "off [fixed]", 
                    "tx_checksum_ipv6": "off [fixed]", 
                    "tx_checksum_sctp": "off [fixed]", 
                    "tx_checksum_unneeded": "off [fixed]", 
                    "tx_checksumming": "off", 
                    "tx_fcoe_segmentation": "off [fixed]", 
                    "tx_gre_segmentation": "off [fixed]", 
                    "tx_gso_robust": "off [fixed]", 
                    "tx_lockless": "off [fixed]", 
                    "tx_scatter_gather": "off [fixed]", 
                    "tx_scatter_gather_fraglist": "off [fixed]", 
                    "tx_tcp6_segmentation": "off [fixed]", 
                    "tx_tcp_ecn_segmentation": "off [fixed]", 
                    "tx_tcp_segmentation": "off [fixed]", 
                    "tx_udp_tnl_segmentation": "off [fixed]", 
                    "tx_vlan_offload": "off [fixed]", 
                    "udp_fragmentation_offload": "off [fixed]", 
                    "vlan_challenged": "off [fixed]"
                }, 
                "ipv4": {
                    "address": "192.168.238.129", 
                    "broadcast": "192.168.238.255", 
                    "netmask": "255.255.255.0", 
                    "network": "192.168.238.0"
                }, 
                "ipv6": [
                    {
                        "address": "fe80::20c:29ff:fe21:bd17", 
                        "prefix": "64", 
                        "scope": "link"
                    }
                ], 
                "macaddress": "00:0c:29:21:bd:17", 
                "module": "pcnet32", 
                "mtu": 1500, 
                "pciid": "0000:02:01.0", 
                "promisc": false, 
                "type": "ether"
            }, 
            "ansible_fips": false, 
            "ansible_form_factor": "Other", 
            "ansible_fqdn": "livecd.centos", 
            "ansible_gather_subset": [
                "hardware", 
                "network", 
                "virtual"
            ], 
            "ansible_hostname": "livecd", 
            "ansible_interfaces": [
                "lo", 
                "eth0"
            ], 
            "ansible_kernel": "2.6.32-642.el6.x86_64", 
            "ansible_lo": {
                "active": true, 
                "device": "lo", 
                "features": {
                    "fcoe_mtu": "off [fixed]", 
                    "generic_receive_offload": "on", 
                    "generic_segmentation_offload": "on", 
                    "highdma": "on [fixed]", 
                    "large_receive_offload": "off [fixed]", 
                    "loopback": "on [fixed]", 
                    "netns_local": "on [fixed]", 
                    "ntuple_filters": "off [fixed]", 
                    "receive_hashing": "off [fixed]", 
                    "rx_checksumming": "on [fixed]", 
                    "rx_vlan_filter": "off [fixed]", 
                    "rx_vlan_offload": "off [fixed]", 
                    "scatter_gather": "on", 
                    "tcp_segmentation_offload": "on", 
                    "tx_checksum_fcoe_crc": "off [fixed]", 
                    "tx_checksum_ip_generic": "on [fixed]", 
                    "tx_checksum_ipv4": "off [fixed]", 
                    "tx_checksum_ipv6": "off [fixed]", 
                    "tx_checksum_sctp": "off [fixed]", 
                    "tx_checksum_unneeded": "off [fixed]", 
                    "tx_checksumming": "on", 
                    "tx_fcoe_segmentation": "off [fixed]", 
                    "tx_gre_segmentation": "off [fixed]", 
                    "tx_gso_robust": "off [fixed]", 
                    "tx_lockless": "on [fixed]", 
                    "tx_scatter_gather": "on [fixed]", 
                    "tx_scatter_gather_fraglist": "on [fixed]", 
                    "tx_tcp6_segmentation": "on", 
                    "tx_tcp_ecn_segmentation": "on", 
                    "tx_tcp_segmentation": "on", 
                    "tx_udp_tnl_segmentation": "off [fixed]", 
                    "tx_vlan_offload": "off [fixed]", 
                    "udp_fragmentation_offload": "on", 
                    "vlan_challenged": "on [fixed]"
                }, 
                "ipv4": {
                    "address": "127.0.0.1", 
                    "broadcast": "host", 
                    "netmask": "255.0.0.0", 
                    "network": "127.0.0.0"
                }, 
                "ipv6": [
                    {
                        "address": "::1", 
                        "prefix": "128", 
                        "scope": "host"
                    }
                ], 
                "mtu": 65536, 
                "promisc": false, 
                "type": "loopback"
            }, 
            "ansible_lvm": {
                "lvs": {}, 
                "vgs": {}
            }, 
            "ansible_machine": "x86_64", 
            "ansible_machine_id": "fbd601d6c3cc5bbb8e9b21b300000010", 
            "ansible_memfree_mb": 72, 
            "ansible_memory_mb": {
                "nocache": {
                    "free": 682, 
                    "used": 314
                }, 
                "real": {
                    "free": 72, 
                    "total": 996, 
                    "used": 924
                }, 
                "swap": {
                    "cached": 0, 
                    "free": 0, 
                    "total": 0, 
                    "used": 0
                }
            }, 
            "ansible_memtotal_mb": 996, 
            "ansible_mounts": [
                {
                    "device": "/dev/mapper/live-rw", 
                    "fstype": "ext4", 
                    "mount": "/", 
                    "options": "rw,noatime", 
                    "size_available": 2155237376, 
                    "size_total": 4093313024, 
                    "uuid": "N/A"
                }, 
                {
                    "device": "/dev/sr0", 
                    "fstype": "iso9660", 
                    "mount": "/mnt/live", 
                    "options": "ro", 
                    "size_available": 0, 
                    "size_total": 735934464, 
                    "uuid": "N/A"
                }, 
                {
                    "device": "/tmp", 
                    "fstype": "tmpfs", 
                    "mount": "/tmp", 
                    "options": "rw,rootcontext="system_u:object_r:tmp_t:s0"", 
                    "size_available": 521654272, 
                    "size_total": 522248192, 
                    "uuid": "N/A"
                }
            ], 
            "ansible_nodename": "livecd.centos", 
            "ansible_os_family": "RedHat", 
            "ansible_pkg_mgr": "yum", 
            "ansible_processor": [
                "GenuineIntel", 
                "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz"
            ], 
            "ansible_processor_cores": 1, 
            "ansible_processor_count": 1, 
            "ansible_processor_threads_per_core": 1, 
            "ansible_processor_vcpus": 1, 
            "ansible_product_name": "VMware Virtual Platform", 
            "ansible_product_serial": "VMware-56 4d e4 27 2b 45 f8 74-e5 17 57 47 ab 21 bd 17", 
            "ansible_product_uuid": "564DE427-2B45-F874-E517-5747AB21BD17", 
            "ansible_product_version": "None", 
            "ansible_python": {
                "executable": "/usr/bin/python", 
                "has_sslcontext": false, 
                "type": "CPython", 
                "version": {
                    "major": 2, 
                    "micro": 6, 
                    "minor": 6, 
                    "releaselevel": "final", 
                    "serial": 0
                }, 
                "version_info": [
                    2, 
                    6, 
                    6, 
                    "final", 
                    0
                ]
            }, 
            "ansible_python_version": "2.6.6", 
            "ansible_selinux": {
                "config_mode": "enforcing", 
                "mode": "enforcing", 
                "policyvers": 24, 
                "status": "enabled", 
                "type": "targeted"
            }, 
            "ansible_service_mgr": "upstart", 
            "ansible_ssh_host_key_dsa_public": "AAAAB3NzaC1kc3MAAACBAN7JNklx9irSPQZeO+xeiUhXNoETLapnTGkcm3ZR/WDqm1HxX+8EPELNzPK0/kUEIouJTQN07vq/Rqhrm0wGO04JzohixiaAIlgxlWqM7aRtgJ29seZZw0SZ2EVnqfalLqO8kPYjqCXL8QBZVJOdvqLwzz/pOxuHGFHh5uKj5SN5AAAAFQCGSiIuqxBcCVS8CYUWjez4HmuatwAAAIBLJj4V3WOo6+9JVmy2RpBJkLimjEGSfsmUEMyRcggTWyBwMnKC4AweZOoGzgBoBtXm4rCgQdzze+jlbL1tQquQQXUoFnaV6eIxRBBOuHa48F3PH4RapLVosBf0U3BfqBZ5l1GhquqPtLug1XfJrUm27JJcuSIc5yVbMkHIoi5KeQAAAIBFR5wRIEyznDQfSMNtctTYExagg/7FOLKtNVOl0J1xbwNOwpF8fUI0OtgWQeHzqDbwTE/Gtp92v6CvEFVTMgcQ+FeUYDcFNPzia+Vdk5C1Un6q8Ejx2hIc+f1Y9fg0yuj6/J0G3kOoIPLOTXFWd1HHSdEr+7dgs8F2F0gsMB/W8/x2Q==", 
            "ansible_ssh_host_key_rsa_public": "AAAAB3NzaC1yc2EAAAABIwAAAQAQEFAqY4Aut3/NGPYJaqMVeVociBafC0Qbc29IKKSy6i0UodrGE3UXAWf/gmNSktkjqZ8UHBiXJAzCAMwyonlm/l4M+ZwYoJ8VjtUZtz/9cGXHS+P2qPID8mMyxvFMn9xd0w623GkSJfqMg0wW9Lwywd4hceq5qp5n8L1tDDCpNxbbAifKXoZmWFejhXU9qzJ8L4Vw/a+XzCbfiTmDifzL7MX2Yt/dy0SWeKbWnjjfDCDtFDtMYh/Uvin/J5FI7JEcSxP/1gjZZO7ivqhQpWNqkqkLgZJ/X2YVODsNh0GaTYfEbOrCKKHbstc0ypppE0bNe91HTSZfvkzkKwV6jzt2T3u8Q==", 
            "ansible_swapfree_mb": 0, 
            "ansible_swaptotal_mb": 0, 
            "ansible_system": "Linux", 
            "ansible_system_capabilities": [], 
            "ansible_system_capabilities_enforced": "False", 
            "ansible_system_vendor": "VMware, Inc.", 
            "ansible_uptime_seconds": 92488, 
            "ansible_user_dir": "/root", 
            "ansible_user_gecos": "root", 
            "ansible_user_gid": 0, 
            "ansible_user_id": "root", 
            "ansible_user_shell": "/bin/bash", 
            "ansible_user_uid": 0, 
            "ansible_userspace_architecture": "x86_64", 
            "ansible_userspace_bits": "64", 
            "ansible_virtualization_role": "guest", 
            "ansible_virtualization_type": "VMware", 
            "module_setup": true
        }, 
        "changed": false
    }
    [root@10_1_162_39 host_vars]#

    引用变量

    [root@10_1_162_39 host_vars]# cat test.playbook 
    ---
    - hosts: "{{ host }}"
      gather_facts: true
      remote_user: root
      tasks:
        - shell: ifconfig
          register: output
        - debug: var=output.stdout
        - debug: msg=" ansible_system={{ ansible_system }}"
        - debug: msg={{ ansible_selinux }}

    运行 playbook 命令

    [root@10_1_162_39 host_vars]# ansible-playbook test.playbook -i hosts -e host=10.1.162.18
    
    PLAY [10.1.162.18] *************************************************************
    
    TASK [setup] *******************************************************************
    ok: [10.1.162.18]
    
    TASK [command] *****************************************************************
    changed: [10.1.162.18]
    
    TASK [debug] *******************************************************************
    ok: [10.1.162.18] => {
        "output.stdout": "eth0      Link encap:Ethernet  HWaddr 00:0C:29:21:BD:17  
              inet addr:192.168.238.129  Bcast:192.168.238.255  Mask:255.255.255.0
              inet6 addr: fe80::20c:29ff:fe21:bd17/64 Scope:Link
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:309551 errors:0 dropped:0 overruns:0 frame:0
              TX packets:125322 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000 
              RX bytes:368636410 (351.5 MiB)  TX bytes:7103077 (6.7 MiB)
              Interrupt:19 Base address:0x2000 
    
    lo        Link encap:Local Loopback  
              inet addr:127.0.0.1  Mask:255.0.0.0
              inet6 addr: ::1/128 Scope:Host
              UP LOOPBACK RUNNING  MTU:65536  Metric:1
              RX packets:8 errors:0 dropped:0 overruns:0 frame:0
              TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:0 
              RX bytes:480 (480.0 b)  TX bytes:480 (480.0 b)"
    }
    
    TASK [debug] *******************************************************************
    ok: [10.1.162.18] => {
        "msg": " ansible_system=Linux"
    }
    
    TASK [debug] *******************************************************************
    ok: [10.1.162.18] => {
        "msg": {
            "config_mode": "enforcing", 
            "mode": "enforcing", 
            "policyvers": 24, 
            "status": "enabled", 
            "type": "targeted"
        }
    }
    
    PLAY RECAP *********************************************************************
    10.1.162.18                : ok=5    changed=1    unreachable=0    failed=0   
    
    [root@10_1_162_39 host_vars]# 
  • 相关阅读:
    集训队日常训练20180518-DIV1
    集训队日常训练20180513-DIV1
    python类的使用与多文件组织
    性能指标
    python调用.so
    动态链接库的使用
    python读写xml文件
    使用python读取文本中结构化数据
    python画图
    numpy及scipy的使用
  • 原文地址:https://www.cnblogs.com/lxmhhy/p/6813953.html
Copyright © 2020-2023  润新知