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

使用Testinfra和Ansible驗證服務器狀態(tài)

運維 系統(tǒng)運維
Testinfra 是一個功能強大的庫,可用于編寫測試來驗證基礎設施的狀態(tài)。另外它與 Ansible 和 Nagios 相結合,提供了一個用于架構即代碼 (IaC) 的簡單解決方案。

[[267332]]

Testinfra 是一個功能強大的庫,可用于編寫測試來驗證基礎設施的狀態(tài)。另外它與 Ansible 和 Nagios 相結合,提供了一個用于架構即代碼 (IaC) 的簡單解決方案。

根據設計,Ansible 傳遞機器的期望狀態(tài),以確保 Ansible 劇本或角色的內容部署到目標機器上。但是,如果你需要確保所有基礎架構更改都在 Ansible 中,該怎么辦?或者想隨時驗證服務器的狀態(tài)?

Testinfra 是一個基礎架構測試框架,它可以輕松編寫單元測試來驗證服務器的狀態(tài)。它是一個 Python 庫,使用強大的 pytest 測試引擎。

開始使用 Testinfra

可以使用 Python 包管理器(pip)和 Python 虛擬環(huán)境輕松安裝 Testinfra。

  1. $ python3 -m venv venv
  2. $ source venv/bin/activate
  3. (venv) $ pip install testinfra

Testinfra 也可以通過 Fedora 和 CentOS 的 EPEL 倉庫中使用。例如,在 CentOS 7 上,你可以使用以下命令安裝它:

  1. $ yum install -y epel-release
  2. $ yum install -y python-testinfra

一個簡單的測試腳本

在 Testinfra 中編寫測試很容易。使用你選擇的代碼編輯器,將以下內容添加到名為 test_simple.py 的文件中:

  1. import testinfra
  2.  
  3. def test_os_release(host):
  4. assert host.file("/etc/os-release").contains("Fedora")
  5.  
  6. def test_sshd_inactive(host):
  7. assert host.service("sshd").is_running is False

默認情況下,Testinfra 為測試用例提供了一個 host 對象,該對象能訪問不同的輔助模塊。例如,***個測試使用 file 模塊來驗證主機上文件的內容,第二個測試用例使用 service 模塊來檢查 systemd 服務的狀態(tài)。

要在本機運行這些測試,請執(zhí)行以下命令:

  1. (venv)$ pytest test_simple.py
  2. ================================ test session starts ================================
  3. platform linux -- Python 3.7.3, pytest-4.4.1, py-1.8.0, pluggy-0.9.0
  4. rootdir: /home/cverna/Documents/Python/testinfra
  5. plugins: testinfra-3.0.0
  6. collected 2 items
  7. test_simple.py ..
  8.  
  9. ================================ 2 passed in 0.05 seconds ================================

有關 Testinfra API 的完整列表,你可以參考文檔。

Testinfra 和 Ansible

Testinfra 支持的后端之一是 Ansible,這意味著 Testinfra 可以直接使用 Ansible 的清單文件和清單中定義的一組機器來對它們進行測試。

我們使用以下清單文件作為示例:

  1. [web]
  2. app-frontend01
  3. app-frontend02
  4.  
  5. [database]
  6. db-backend01

我們希望確保我們的 Apache Web 服務器在 app-frontend01app-frontend02 上運行。讓我們在名為 test_web.py 的文件中編寫測試:

  1. def check_httpd_service(host):
  2. """Check that the httpd service is running on the host"""
  3. assert host.service("httpd").is_running

要使用 Testinfra 和 Ansible 運行此測試,請使用以下命令:

  1. (venv) $ pip install ansible
  2. (venv) $ py.test --hosts=web --ansible-inventory=inventory --connection=ansible test_web.py

在調用測試時,我們使用 Ansible 清單文件的 [web] 組作為目標計算機,并指定我們要使用 Ansible 作為連接后端。

使用 Ansible 模塊

Testinfra 還為 Ansible 提供了一個很好的可用于測試的 API。該 Ansible 模塊能夠在測試中運行 Ansible 動作,并且能夠輕松檢查動作的狀態(tài)。

  1. def check_ansible_play(host):
  2. """
  3. Verify that a package is installed using Ansible
  4. package module
  5. """
  6. assert not host.ansible("package", "name=httpd state=present")["changed"]

默認情況下,Ansible 的檢查模式已啟用,這意味著 Ansible 將報告在遠程主機上執(zhí)行動作時會發(fā)生的變化。

Testinfra 和 Nagios

現在我們可以輕松地運行測試來驗證機器的狀態(tài),我們可以使用這些測試來觸發(fā)監(jiān)控系統(tǒng)上的警報。這是捕獲意外的更改的好方法。

Testinfra 提供了與 Nagios 的集成,它是一種流行的監(jiān)控解決方案。默認情況下,Nagios 使用 NRPE 插件對遠程主機進行檢查,但使用 Testinfra 可以直接從 Nagios 主控節(jié)點上運行測試。

要使 Testinfra 輸出與 Nagios 兼容,我們必須在觸發(fā)測試時使用 --nagios 標志。我們還使用 -qq 這個 pytest 標志來啟用 pytest 的靜默模式,這樣就不會顯示所有測試細節(jié)。

  1. (venv) $ py.test --hosts=web --ansible-inventory=inventory --connection=ansible --nagios -qq line test.py
  2. TESTINFRA OK - 1 passed, 0 failed, 0 skipped in 2.55 seconds

Testinfra 是一個功能強大的庫,可用于編寫測試以驗證基礎架構的狀態(tài)。 另外與 Ansible 和 Nagios 相結合,提供了一個用于架構即代碼 (IaC) 的簡單解決方案。 它也是使用 Molecule 開發(fā) Ansible 角色過程中添加測試的關鍵組件。 

責任編輯:龐桂玉 來源: Linux中國
相關推薦

2010-07-20 10:43:34

Telnet服務器

2010-05-19 15:00:37

IIS服務器

2012-02-13 23:46:22

keepalived高可用

2009-12-29 11:03:28

VPN服務器故障

2020-06-07 11:54:34

Linux服務器命令

2019-06-13 17:15:30

監(jiān)控Linux服務器

2018-01-19 10:30:48

HTTP服務器代碼

2011-07-08 09:01:37

服務器網絡驗證工具

2010-07-27 13:53:23

NFS服務器

2010-08-26 22:07:38

DHCP服務器

2010-07-19 17:30:47

2011-03-24 10:59:10

Nagios監(jiān)控mysql

2010-07-27 10:28:44

2010-05-21 11:50:54

IIS服務器

2019-02-26 16:20:52

FTP服務器

2010-05-17 16:50:38

IIS服務器

2022-03-14 15:10:20

云服務器物理服務器性能

2018-06-15 16:05:06

服務器無密碼驗證登錄安全

2009-09-17 18:05:51

Nis服務器

2014-03-10 09:57:55

實時監(jiān)測郵件監(jiān)控
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品一区二区av | 91中文字幕在线 | 亚洲性视频 | 亚洲一二三区在线观看 | 久久国产激情视频 | 国产成人免费视频网站高清观看视频 | 日屁网站 | 久久久久亚洲av毛片大全 | 亚洲国产一区二区三区四区 | 国产精品成人一区二区三区 | 91色啪| 最新日韩在线视频 | 国产精品欧美一区二区三区不卡 | 精品国产精品三级精品av网址 | 精品乱码久久久久 | www国产亚洲精品久久网站 | 亚洲日本乱码在线观看 | 亚洲不卡av在线 | 免费v片 | 99精品一区二区 | 色噜噜色综合 | 精品久久久久久久久久久院品网 | 国产精品久久久久久久久久久久 | 九九国产在线观看 | 日韩一区二区av | 久久亚洲国产 | 精品国产伦一区二区三区观看说明 | 国产午夜精品一区二区 | av中文字幕网| 日韩欧美在线一区 | 91动漫在线观看 | 一区二区三区在线免费观看 | 亚洲视频免费观看 | 久久久激情 | 日本精品视频 | 中文字幕精品一区久久久久 | 国产精品高潮呻吟久久 | 在线不卡视频 | 99在线播放| 亚洲风情在线观看 | 精品久久不卡 |