1. 程式人生 > >21-Ansible常用模組-setup模組

21-Ansible常用模組-setup模組

一、概述

setup 模組用於收集遠端主機的一些基本資訊。

二、常用引數

filter引數:用於進行條件過濾。如果設定,僅返回匹配過濾條件的資訊。

三、示例

1.獲取 ansible-demo3 主機的資訊。

[root@ansible-manager ~]# ansible ansible-demo3 -m setup
ansible-demo3 | SUCCESS => {
    "ansible_facts": {
        "ansible_all_ipv4_addresses": [
            "192.168.128.83"
        ], 
        "ansible_all_ipv6_addresses"
: [ "fe80::250:56ff:fe35:785f" ], "ansible_apparmor": { "status": "disabled" }, "ansible_architecture": "x86_64", "ansible_bios_date": "07/02/2015", ...... "ansible_userspace_architecture": "x86_64", "ansible_userspace_bits"
: "64", "ansible_virtualization_role": "guest", "ansible_virtualization_type": "VMware", "gather_subset": [ "all" ], "module_setup": true }, "changed": false }

返回的資訊非常多,很多情況我們並不需要全部的資訊,可以通過過濾獲得指定的資訊。

2.獲取 ansible-demo3 主機的 IPV4 地址。

[root@ansible
-manager ~]# ansible ansible-demo3 -m setup -a "filter=ansible_all_ipv4_addresses" ansible-demo3 | SUCCESS => { "ansible_facts": { "ansible_all_ipv4_addresses": [ "192.168.128.83" ] }, "changed": false }

3.獲取 ansible-demo3 主機的記憶體資訊。

[root@ansible-manager ~]# ansible ansible-demo3 -m setup -a "filter=ansible_memory_mb"
ansible-demo3 | SUCCESS => {
    "ansible_facts": {
        "ansible_memory_mb": {
            "nocache": {
                "free": 1645, 
                "used": 177
            }, 
            "real": {
                "free": 1350, 
                "total": 1822, 
                "used": 472
            }, 
            "swap": {
                "cached": 0, 
                "free": 2047, 
                "total": 2047, 
                "used": 0
            }
        }
    }, 
    "changed": false
}

4.通過萬用字元實現模糊匹配,比如以”mb”關鍵字結尾的資訊。

[root@ansible-manager ~]# ansible ansible-demo3 -m setup -a "filter=*mb"
ansible-demo3 | SUCCESS => {
    "ansible_facts": {
        "ansible_memfree_mb": 1542, 
        "ansible_memory_mb": {
            "nocache": {
                "free": 1654, 
                "used": 168
            }, 
            "real": {
                "free": 1542, 
                "total": 1822, 
                "used": 280
            }, 
            "swap": {
                "cached": 0, 
                "free": 2047, 
                "total": 2047, 
                "used": 0
            }
        }, 
        "ansible_memtotal_mb": 1822, 
        "ansible_swapfree_mb": 2047, 
        "ansible_swaptotal_mb": 2047
    }, 
    "changed": false
}

其他常用資訊列出如下:

ansible_all_ipv4_addresses:僅顯示ipv4的資訊。
ansible_devices:僅顯示磁碟裝置資訊。
ansible_distribution:顯示是什麼系統,例:centos,suse等。
ansible_distribution_major_version:顯示是系統主版本。
ansible_distribution_version:僅顯示系統版本。
ansible_machine:顯示系統型別,例:32位,還是64位。
ansible_eth0:僅顯示eth0的資訊。
ansible_hostname:僅顯示主機名。
ansible_kernel:僅顯示核心版本。
ansible_lvm:顯示lvm相關資訊。
ansible_memtotal_mb:顯示系統總記憶體。
ansible_memfree_mb:顯示可用系統記憶體。
ansible_memory_mb:詳細顯示記憶體情況。
ansible_swaptotal_mb:顯示總的swap記憶體。
ansible_swapfree_mb:顯示swap記憶體的可用記憶體。
ansible_mounts:顯示系統磁碟掛載情況。
ansible_processor:顯示cpu個數(具體顯示每個cpu的型號)。
ansible_processor_vcpus:顯示cpu個數(只顯示總的個數)。

四、總結

本節介紹了 Ansible 常用模組之 setup 模組,並舉例說明如何使用。從下節開始,我們重點介紹 Playbook ,首先是 Playbook 概述。