成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Ansible Setup 模塊實戰,如何使用 Setup 模塊收集主機信息

網絡 網絡優化
在這篇文章中,我們將一步步帶你了解如何使用setup模塊來收集主機信息,并且還會對比一下使用ansible命令和ansible-playbook這兩種不同方法的優劣。

在Ansible中,setup模塊是一個非常有用的工具,可以幫助你輕松地收集目標主機的各種系統信息。無論是想了解操作系統的版本、內存容量、CPU性能還是網絡配置,setup模塊都能為你提供詳盡的硬件和軟件資源數據。在這篇文章中,我們將一步步帶你了解如何使用setup模塊來收集主機信息,并且還會對比一下使用ansible命令和ansible-playbook這兩種不同方法的優劣。

一、什么是Setup模塊?

Ansible的setup模塊可以幫你收集遠程主機的各種信息,比如操作系統、硬件配置和網絡設置等。這樣你就能在自動化運維過程中隨時了解目標主機的狀態。這個模塊支持很多不同的系統平臺,并且收集到的數據格式統一,方便你后續處理。

setup 模塊收集的信息包括:

  • 操作系統信息:如版本、發行版等
  • 網絡信息:如IP地址、網關、DNS配置等
  • 內存、CPU配置:如內存總量、CPU核心數等
  • 存儲信息:如磁盤設備、文件系統等
  • 主機名、架構等基本信息。

二、如何使用setup 模塊

如果不知道setup的具體用法,可以通過執行ansible-doc setup查看幫助文檔,如下圖所示:

1. 命令行使用 setup 模塊

最簡單的方式是直接使用 ansible 命令行工具,調用setup 模塊收集目標主機的信息。

示例 1:收集所有主機的系統信息

假設你希望對 all 組中的所有主機收集信息,使用以下命令:

ansible all -m setup

這條命令將會通過SSH登錄到目標主機,并返回一個包含各類系統信息的JSON 輸出。輸出將包括目標主機的操作系統、內存、CPU、網絡配置等詳細信息。

示例 2:限制收集特定主機組的信息

如果你只對aliyun-server組的主機感興趣,可以這樣寫:

ansible aliyun-server -m setup

該命令只會收集 aliyun-server 組中所有主機的系統信息。結果如下圖所示:

2. 命令行使用 setup 模塊收集特定信息

你還可以通過 filter 參數來只收集某些特定的事實數據。例如,如果你只關心主機的操作系統版本或內存信息,可以使用如下命令:

示例 3:只收集操作系統信息

ansible aliyun-server  -m setup -a "filter=ansible_distribution*"

該命令會僅返回主機的操作系統相關信息,例如:

web | SUCCESS => {
    "ansible_facts": {
        "ansible_distribution": "Ubuntu",
        "ansible_distribution_file_parsed": true,
        "ansible_distribution_file_path": "/etc/os-release",
        "ansible_distribution_file_variety": "Debian",
        "ansible_distribution_major_version": "22",
        "ansible_distribution_release": "jammy",
        "ansible_distribution_version": "22.04",
        "discovered_interpreter_python": "/usr/bin/python3"
    },
    "changed": false
}

示例 4:只收集內存信息

ansible aliyun-server -m setup -a "filter=ansible_memory_mb"

輸出將僅顯示目標主機的內存信息:

web | SUCCESS => {
    "ansible_facts": {
        "ansible_memory_mb": {
            "nocache": {
                "free": 276,
                "used": 1409
            },
            "real": {
                "free": 76,
                "total": 1685,
                "used": 1609
            },
            "swap": {
                "cached": 0,
                "free": 0,
                "total": 0,
                "used": 0
            }
        },
        "discovered_interpreter_python": "/usr/bin/python3"
    },
    "changed": false
}

三、使用Playbook 調用setup模塊

除了使用Ansible命令行之外,你還可以借助Ansible Playbook來收集系統信息。Playbook是Ansible中非常重要的工具,用于配置管理和自動化任務。它能夠幫助你輕松地安排和執行多個任務,并且整個過程會非常清晰有序。希望這個方法對你有幫助!

1. Playbook示例:收集系統信息

以下是一個基本的Playbook示例,演示如何在Playbook中調用setup模塊收集信息:

---
-name:Gathersysteminformation
hosts:test
tasks:
    -name:Collectsystemfacts
      setup:

    -name:DisplayOSversion
      debug:
        msg:"The OS version is {{ ansible_distribution_version }}"

該Playbook會在目標主機上執行setup模塊,收集系統信息,然后使用 debug模塊顯示操作系統的版本。你可以通過以下命令運行該Playbook:

ansible-playbook gather_system_facts.yml

成功執行后返回如下圖所示:

2. Playbook 示例:過濾特定信息

你也可以通過filter參數來優化Playbook,只收集特定的系統信息。例如,以下 Playbook僅收集目標主機的內存信息:

---
-name:Gathersystemmemoryfacts
hosts:test
tasks:
    -name:Collectmemoryfacts
      setup:
        filter:ansible_memory_mb

    -name:Displaytotalmemory
      debug:
        msg:"Total memory is {{ ansible_memory_mb.real.total }} MB"

運行該Playbook后,它只會返回并顯示內存信息。

3. 綜合案例

為了根據遠程服務器的具體架構上傳相應的軟件包,我們可以利用Ansible的setup模塊來獲取服務器的架構信息。然后,通過使用條件判斷(例如when子句),我們可以靈活地根據這些信息執行不同的操作。這樣不僅提高了效率,還讓整個過程變得更加智能和自動化。

以下Playbook實現了上述功能:

---
-name:Uploadsoftwarepackagebasedonarchitecture
hosts:all
gather_facts:yes
tasks:
    -name:Collectsystemarchitecture
      debug:
        msg:"The architecture of the server is {{ ansible_architecture }}"

    -name:Uploadx86_64softwarepackage
      copy:
        src:./packages/software_x86_64.rpm
        dest:/tmp/software.rpm
      when:ansible_architecture=="x86_64"

    -name:Uploadaarch64softwarepackage
      copy:
        src:./packages/software_aarch64.rpm
        dest:/tmp/software.rpm
      when:ansible_architecture=="aarch64"

    -name:Uploadi386softwarepackage
      copy:
        src:./packages/software_i386.rpm
        dest:/tmp/software.rpm
      when:ansible_architecture=="i386"

如果軟件包的文件名和架構信息一致,可以使用變量動態構造路徑,上面的yaml文件可以簡化如下:

---
-name:Uploadsoftwarepackagebasedonarchitecture
hosts:all
gather_facts:yes
tasks:
    -name:Collectsystemarchitecture
      debug:
        msg:"The architecture of the server is {{ ansible_architecture }}"
    -name:Uploadsoftwarepackagedynamically
      copy:
        src:"./packages/software_{{ ansible_architecture }}.rpm"
        dest:/tmp/software.rpm
      when:ansible_architecturein["x86_64","aarch64","i386"]

執行以下命令運行該Playbook:

ansible-playbook upload_package.yml

成功執行如下圖所示:

四、ansible和playbook那個更好用?

在Ansible中,對setup模塊的調用可以通過直接使用Ansible命令行工具或通過Playbook來實現。這兩種方法各有特點,在實際應用中根據具體需求選擇合適的方式至關重要。

  • 直接使用Ansible命令行工具:這種方式適用于需要快速獲取目標主機信息的情況。通過執行類似 ansible <host> -m setup 的命令,可以直接查看指定主機上的系統信息、安裝軟件包等詳細數據。這種方法簡單快捷,適合于調試或是偶爾需要查看特定主機信息的場景。
  • 通過Playbook調用:當涉及到更復雜的配置管理任務時,推薦使用Playbook來組織和自動化整個過程。在這種情況下,可以在Playbook中定義一個或多個任務來調用setup模塊,從而收集所需的信息。這種方法不僅能夠更好地集成到自動化流程中,而且還支持更高級的功能如條件判斷、循環處理等,使得信息收集過程更加靈活可控。

五、總結

setup模塊是Ansible里的一個重要工具,用來收集目標主機的各種信息,比如操作系統、硬件配置和網絡設置等,讓你能快速了解主機的情況。 無論是命令行還是Playbook,它們都能夠通過filter 參數精確收集所需的信息,避免不必要的數據冗余。

責任編輯:趙寧寧 來源: 攻城獅成長日記
相關推薦

2025-01-16 08:13:43

commandshell模塊Ansible

2024-11-01 10:30:05

2022-11-22 13:00:38

2025-01-22 10:04:52

自動化運維Ansiblefetch

2011-08-16 10:10:58

setup中文man

2009-03-04 10:38:36

XenDesktop 桌面虛擬化Xendesktop

2022-02-18 09:39:51

Vue3.0Vue2.0Script Set

2021-11-22 11:05:20

Vue 3setup前端

2009-03-04 10:10:49

XenDesktop 桌面虛擬化Xendesktop

2009-12-04 09:32:00

Web Setup P

2020-10-29 10:17:24

AnsibleKubernetes容器編排自動化

2022-11-30 18:38:50

2009-09-04 11:00:29

2025-03-21 09:58:59

Python數據類型安全

2015-11-03 14:56:11

內置模塊信息Linux

2009-12-21 17:05:48

2010-03-22 15:38:46

Python常用模塊

2019-01-30 14:04:57

Fedora存儲庫

2016-10-17 13:33:26

原子主機AnsibleCockpit

2010-02-03 09:19:31

Python模塊
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 在线一级片 | 中文字幕不卡在线观看 | jlzzjlzz欧美大全 | 亚洲精品日韩综合观看成人91 | 精品久久久久久久久久久 | 嫩草黄色影院 | 日韩视频成人 | 综合色导航 | 91av在线免费 | 综合国产在线 | 精久久| 古装三级在线播放 | 夜夜摸天天操 | 久久久精品一区二区三区 | 懂色中文一区二区三区在线视频 | 日韩高清中文字幕 | 日本 欧美 三级 高清 视频 | 日韩在线一区二区三区 | 中文字幕福利视频 | 九九视频网 | 亚洲国产一区二区三区 | 国产精品99999| 能免费看的av | 国产一区二区三区 | 成人性视频免费网站 | 牛牛热在线视频 | 欧美综合一区二区三区 | 久久久久久久久中文字幕 | 奇米四色影视 | 中文字幕精品一区二区三区精品 | 日本精品一区二区三区在线观看视频 | 国产精品美女在线观看 | 国产高清在线 | 亚洲综合精品 | 免费av电影网站 | 精品国产一区二区三区久久久四川 | 福利精品| 中文字幕二区三区 | 97人人澡人人爽91综合色 | 日本精品视频在线 | 精品久久久久久亚洲国产800 |