1. 程式人生 > >ansible 獲取系統資訊的一些範例

ansible 獲取系統資訊的一些範例

主機名:echo `ansible 193.168.120.101 -m setup -a "filter=ansible_hostname" | grep hostname` | awk -F '[:]' '{print $2}' | sed -e '/"/s/"//g' 

記憶體:echo `ansible 193.168.120.101 -m setup -a "filter=ansible_memtotal_mb" | grep ansible_memtotal_mb` | awk -F '[:]' '{print $2}'

常用資訊

ansible_all_ipv4_addresses:僅顯示ipv4的資訊

ansible_devices:僅顯示磁碟裝置資訊

ansible_distribution:顯示是什麼系統,例:centos,suse等

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_python_version:顯示python版本

關於palybook當中變數的引用,例如

[[email protected] ansible]# ansible 192.168.156.71 -m setup -a "filter=ansible_eno16777736"
192.168.156.71 | SUCCESS => {
    "ansible_facts": {
        "ansible_eno16777736": {
            "active": true, 
            "device": "eno16777736", 
            "features": {
                "busy_poll": "off [fixed]", 
                "fcoe_mtu": "off [fixed]", 
                "generic_receive_offload": "on", 
                "generic_segmentation_offload": "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_all": "off", 
                "rx_checksumming": "off", 
                "rx_fcs": "off", 
                "rx_vlan_filter": "on [fixed]", 
                "rx_vlan_offload": "on", 
                "rx_vlan_stag_filter": "off [fixed]", 
                "rx_vlan_stag_hw_parse": "off [fixed]", 
                "scatter_gather": "on", 
                "tcp_segmentation_offload": "on", 
                "tx_checksum_fcoe_crc": "off [fixed]", 
                "tx_checksum_ip_generic": "on", 
                "tx_checksum_ipv4": "off [fixed]", 
                "tx_checksum_ipv6": "off [fixed]", 
                "tx_checksum_sctp": "off [fixed]", 
                "tx_checksumming": "on", 
                "tx_fcoe_segmentation": "off [fixed]", 
                "tx_gre_segmentation": "off [fixed]", 
                "tx_gso_robust": "off [fixed]", 
                "tx_ipip_segmentation": "off [fixed]", 
                "tx_lockless": "off [fixed]", 
                "tx_mpls_segmentation": "off [fixed]", 
                "tx_nocache_copy": "on", 
                "tx_scatter_gather": "on", 
                "tx_scatter_gather_fraglist": "off [fixed]", 
                "tx_sit_segmentation": "off [fixed]", 
                "tx_tcp6_segmentation": "off [fixed]", 
                "tx_tcp_ecn_segmentation": "off [fixed]", 
                "tx_tcp_segmentation": "on", 
                "tx_udp_tnl_segmentation": "off [fixed]", 
                "tx_vlan_offload": "on [fixed]", 
                "tx_vlan_stag_hw_insert": "off [fixed]", 
                "udp_fragmentation_offload": "off [fixed]", 
                "vlan_challenged": "off [fixed]"
            }, 
            "ipv4": {
                "address": "192.168.156.71", 
                "broadcast": "192.168.156.255", 
                "netmask": "255.255.255.0", 
                "network": "192.168.156.0"
            }, 
            "ipv6": [
                {
                    "address": "fe80::20c:29ff:fe56:6ea6", 
                    "prefix": "64", 
                    "scope": "link"
                }
            ], 
            "macaddress": "00:0c:29:56:6e:a6", 
            "module": "e1000", 
            "mtu": 1500, 
            "pciid": "0000:02:01.0", 
            "promisc": false, 
            "speed": 1000, 
            "type": "ether"
        }
    }, 
    "changed": false
}

如果想在playbook取出IPV4的值,可以這樣引用:

[[email protected] ansible]# cat 5.yml 
- hosts: 192.168.156.71
  tasks:
  - debug: 'msg="ipv4 address: {{ansible_eno16777736.ipv4.address}}"'
  - debug: 'msg="macaddress: {{ansible_eno16777736.macaddress}}"'
[[email protected] ansible]# ansible-playbook 5.yml 

PLAY [192.168.156.71] *************************************************************************************************************************************************

TASK [Gathering Facts] ************************************************************************************************************************************************
Saturday 22 September 2018  20:45:38 +0800 (0:00:00.073)       0:00:00.073 **** 
ok: [192.168.156.71]

TASK [debug] **********************************************************************************************************************************************************
Saturday 22 September 2018  20:45:39 +0800 (0:00:00.829)       0:00:00.902 **** 
ok: [192.168.156.71] => {
    "msg": "ipv4 address: 192.168.156.71"
}

TASK [debug] **********************************************************************************************************************************************************
Saturday 22 September 2018  20:45:39 +0800 (0:00:00.029)       0:00:00.932 **** 
ok: [192.168.156.71] => {
    "msg": "macaddress: 00:0c:29:56:6e:a6"
}

PLAY RECAP ************************************************************************************************************************************************************
192.168.156.71             : ok=3    changed=0    unreachable=0    failed=0   

Saturday 22 September 2018  20:45:39 +0800 (0:00:00.027)       0:00:00.960 **** 
=============================================================================== 
Gathering Facts --------------------------------------------------------- 0.83s
debug ------------------------------------------------------------------- 0.03s
debug ------------------------------------------------------------------- 0.03s
[[email protected] ansible]# 

相關推薦

ansible 獲取系統資訊一些範例

主機名:echo `ansible 193.168.120.101 -m setup -a "filter=ansible_hostname" | grep hostname` | awk -F '[:]' '{print $2}' | sed -e '/"/s/"//g

python獲取系統資訊模組詳解

python是跨平臺語言,有時候我們的程式需要執行在不同系統上,例如:linux、MacOs、 Windows,為了使程式有更好通用性,需要根據不同系統使用不同操作方式。我們可以使用platform模組來獲取系統資訊。platform是python自帶模組,我們可以直接使用,下面來介紹這個模組:首先匯入模組:

3.3 Linux獲取系統資訊(5、6、7節)

3.3.5.linux中使用隨機數 3.3.5.1、隨機數和偽隨機數 (1)隨機數是隨機出現,沒有任何規律的一組數列。 (2)真正的完全隨機的數列是不存在的,只是一種理想情況。我們平時要用到隨機數時一般只能通過一些演算法得到一個偽隨機數序列。 (3)我們平時說到隨機數,基本都指的是偽隨機數。

3.3 Linux獲取系統資訊(3、4節)

3.3.3.時間相關API實戰1 3.3.3.1、time (1)time能得到一個當前時間距離標準起點時間1970-01-01 00:00:00 +0000(UTC)過去了多少秒 3.3.3.2、ctime (1)ctime可以從time_t出發得到一個容易觀察的字串格式的當前時間

3.3 Linux獲取系統資訊(1、2節)

3.3.1.關於時間的概念 3.3.1.1、GMT時間 (1)GMT是格林尼治時間,也就是格林尼治地區的當地之間。 (2)GMT時間的意義?用格林尼治的當地時間作為全球國際時間,用以描述全球性的事件的時間,方便大家記憶。 (3)一般為了方便,一個國家都統一使用一個當地時間。 3.3.1.

十四、Android UiAutomator 獲取系統資訊

public void testDemo1(){ //Build類 System.out.println("Build:"+Build.BOARD); System.out.println("Build:"+Build.BOOTLOADER); System.out.pri

c#獲取系統資訊的幾種方式

1.Environment 這個沒什麼好說的,最簡單的方法 //提供有關當前環境和平臺的資訊以及操作它們的方法。此類不能被繼承。 //獲取或設定當前工作目錄的完全限定路徑。 public static string CurrentDir

Delphi通過WMI獲取系統資訊

uses ActiveX, ComObj;function GetWMIProperty(WMIType, WMIProperty: string): string;var  Wmi, Objs, Obj: OleVariant;  Enum: IEnumVariant; 

windows和linux 配置sigar 使用java 獲取系統資訊

下載 配置sigar所需要的包 下載地址:hyperic-sigar下載   配置 開啟下載的檔案,進入lib目錄 hyperic-sigar-1.6.4/sigar-bin/lib windows配置sigar 將 hyperic-sigar-1.6.4/si

popen + top 獲取系統資訊

想實時監視系統資訊,用popen+ top 完成。  發現程式碼在ubuntu下執行正常,而在arm上一執行,就掛死了。 而執行ls則不會掛死,比較兩個的不同,發現ls是執行一次,而top是一直執行的

windows程式設計學習——獲取系統資訊

(1) GetSystemInfo函式 功能:返回關於當前系統的資訊。 函式原型: void WINAPI GetSystemInfo ( _Out_ LPSYSTEM_INFO lpSystemInfo//LPSYSTEM_INFO結構體指標 );     SYSTEM_I

獲取系統資訊,包括頁面大小,分配粒度,還有CPU資訊(GetSystemInfo)

 Retrieves information about the current system. To retrieve accurate information for an application running on WOW64, call theGetNativ

Ubuntu下獲取系統資訊shell指令碼

#!/bin/bash # 獲取系統資訊 # 獲取cpu數量 get_cpu_num(){ grep "cpu cores" /proc/cpuinfo | head -n1 | awk '

python 獲取系統資訊—psutil安裝及使用

簡介 工具可以獲得到CPU, memory, disks, network這些資訊 psutil可以用來做系統監控,效能分析,程序管理。 支援的系統有Linux, Windows, OSX, FreeBSD and Sun Solaris,32和64位系統都支援,同時

ios獲取系統資訊的詳細api

MacOS X下檢視CPU資訊大致有3個方法: 用系統自帶的System Information,它給出的資訊比較少,比如無法知道CPU的執行緒數 用第三方軟體CPU-X,它和著名的CPU-Z軟體非常類似,很容易上手 用命令列工具 用名令行工具可以得到最

php中獲取系統資訊的方法

獲取系統型別及版本號:    php_uname()                                   (例:Windows NT COMPUTER 5.1 build 2600) 只獲取系統型別:          php_uname('s')                     

獲取系統限制資訊

// 成功返回相應值,出錯返回-1 #include <unistd.h> long sysconf(int name); // 用獲取與指定檔案相關的限制值,區別在於前者使用路徑名,後者使用檔案描述符 long pathconf(const char *pathname, int name

Java 獲取當前系統資訊

好記憶不如爛筆頭,能記下點東西,就記下點,有時間拿出來看看,也會發覺不一樣的感受。 引言: 在實際的開發過程中,自然會遇到檔案讀寫的問題,那麼在目前流行的 window 和 linux 上,獲取系統的相關資訊,自然會被使用到、獲取相關資訊主要用到:System.getProp

遙感影象處理 | 採用GDAL讀取影象成功後獲取影象的一些基本資訊和統計資訊(C#)

描述資訊:  const char*  GDALDataset.GetDriver().GetDescription(),通常是影象的格式 影象大小:  影象寬度  int  GDALDataset.GetRasterXSize() &nbs

獲取並輸出當前安卓裝置的系統資訊

String TAG = "SystemInfo";String board = Build.BOARD;Log.i("TAG",String.Format("主機板資訊:%s",board));String brand = Build.BRAND;Log.i("TAG",String.Form