作者主頁:點擊!?
Ansible專欄:點擊!
創作時間:2024年5月22日13點14分
💯趣站推薦💯
前些天發現了一個巨牛的🤖人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家,人工智能,?機器算法等......??點擊跳轉網頁!
https://www.captainbed.cn/sis
Setup模塊是Ansible中最常用的模塊之一,用于收集有關目標主機的各種信息,這些信息被稱為Facts。Facts信息涵蓋了操作系統、硬件、軟件、網絡配置等方面,可以用于各種自動化運維任務。
🎆Setup模塊的作用優點
-
簡單易用:使用Setup模塊非常簡單,只需在Playbook中添加一個
setup
任務即可開始收集目標主機的信息。這種簡單易用的特性使得即使是初學者也能快速上手。 -
全面的信息收集:Setup模塊能夠收集各種系統信息,包括硬件、操作系統、網絡、內存、CPU等方面的信息。這使得管理員可以全面了解目標主機的狀態,為系統管理和故障排查提供了有力支持。
-
實時性:Setup模塊是在每次Playbook運行時實時收集信息的,因此你可以始終獲取到目標主機的最新狀態。這有助于及時發現并解決系統問題,確保系統的可靠性和穩定性。
-
可定制性:你可以根據需要定制Setup模塊的行為,只收集你感興趣的信息,從而避免收集大量無用的數據,減少數據傳輸和處理的開銷。
-
與條件執行結合:收集到的信息可以與條件執行結合使用,從而實現根據不同主機狀態執行不同任務的靈活性。這種靈活性使得你可以根據系統狀態采取相應的措施,實現更智能的自動化運維。
-
與其他模塊集成:Setup模塊與其他Ansible模塊無縫集成,可以與模塊如Template、Copy、File等結合使用,實現根據收集到的信息動態生成配置文件、更新文件內容等功能。
🥈Facts含義
在Ansible中,Facts是指由Ansible自動收集的關于目標主機(也稱為受管節點)的各種信息。這些信息包括硬件、操作系統、網絡、內存、CPU等方面的數據。當Ansible執行Playbook時,它會默認執行一個名為"Gather Facts"的任務,該任務會在目標主機上運行一個特殊的模塊(通常是setup
模塊),以收集各種系統信息,并將這些信息存儲在內存中。
參數
Facts信息 | 含義 |
---|---|
ansible_all_ipv4_addresses | 所有目標主機的 IPv4 地址列表。 |
ansible_all_ipv6_addresses | 所有目標主機的 IPv6 地址列表。 |
ansible_date_time | 系統時間。 |
ansible_kernel | 內核版本。 |
ansible_default_ipv4 | 默認網關的 IPv4 地址。 |
ansible_default_ipv6 | 默認網關的 IPv6 地址。 |
ansible_distribution | Linux 系統發行版本,例如 CentOS、Ubuntu、等。 |
ansible_nodename | 主機名。 |
ansible_pkg_mgr | 包管理器,例如 yum、apt、dpkg 等。 |
ansible_python_version | Python 版本。 |
ansible_processor_cores | CPU核數。 |
ansible_processor_count | 邏輯 CPU 核心數,包括超線程。 |
ansible_cpu_info | CPU 信息字典,包含 CPU 頻率、架構等信息。 |
ansible_mem_total | 總內存容量。 |
ansible_mem_free | 可用內存容量。 |
ansible_mem_used | 已使用內存容量。 |
??實例
1. 收集所有Facts信息
- name: 收集所有Facts信息hosts: alltasks:- name: 收集所有Facts信息setup:
該Playbook會連接到所有目標主機,并收集所有Facts信息。
2. 收集特定Facts信息
- name: 收集特定Facts信息hosts: alltasks:- name: 收集硬件信息setup:gather_subset: hardware- name: 收集網絡信息setup:gather_subset: network- name: 收集Fact信息setup:gather_subset: fact- name: 收集配置信息setup:gather_subset: config- name: 不收集任何Facts信息setup:gather_subset: none
該Playbook會分別收集硬件信息、網絡信息、Fact信息、配置信息,以及不收集任何Facts信息
3. Facts信息收集的參數
- name: 設置Facts信息收集的參數hosts: alltasks:- name: 設置Facts信息收集的超時時間為 120 秒setup:gather_timeout: 120- name: 將Facts信息存儲在 /tmp/facts.d 目錄中setup:fact_path: /tmp/facts.d- name: 覆蓋 host_uuid Facts信息setup:gather_overrides:ansible_facts:host_uuid: "my-uuid"- name: 收集子目錄中的Facts信息setup:gather_subdirs: yes- name: 指定Facts信息收集的配置文件setup:gather_profile: default- name: 收集CLI Facts信息setup:gather_cli_facts: yes
該Playbook會設置Facts信息收集的超時時間、存儲路徑、覆蓋特定Facts信息、收集子目錄信息、指定配置文件、以及收集CLI Facts信息。
😶?🌫?實驗操作
實驗目的通過一臺ansible服務器來查看服務器的信息
幫助手冊
ansible-doc setup
1.掃描主機信息
[root@ansible ~]# ansible host1 -m setup 掃描host1的主機各種各樣的詳細信息太詳細了
- host 1:這是您要管理的目標計算機的主機名或IP地址。
- -m setup:指定要運行的模塊。在本例中,它是“setup”模塊,負責收集有關目標主機的事實(信息)。
運行此命令時會發生什么?
1.Ansible嘗試使用配置的方法(默認情況下通常是SSH)建立到目標主機“host1”的連接。
2.如果連接成功,Ansible會在目標主機上執行“setup”模塊
- 設置模塊收集有關目標主機的各種信息,例如:
- 操作系統詳細信息(版本、名稱等)
- Hardware information (CPU cores, memory, etc.)
- 安裝的軟件包
- 網絡配置(IP地址、接口等)
- 這些信息被收集并發送回Ansible控制機。
- 這些信息存儲為Ansible Facts,可用于Ansible Playbook中的后續任務。
2.ip地址信息
[root@ansible ~]# ansible host1 -m setup -a 'filter=ansible_all_ipv4_addresses'
如何調用cpu信息呢大家去試試吧