使用 Ansible 編譯和安裝 nagios

注:該文做者是 Patrick Ogenstad,原文地址是 Compile and Install Nagios with Ansiblepython

此處輸入圖片的描述

若是你決定嘗試 Nagios 而且經過你的發行版軟件管理系統來安裝它,你或許注意到它的版本太老了。你想要的一些特性或是擴展在早期版本不支持。所以你決定下載 Nagios 源碼包並用傳統的方式安裝。儘管這不像鍵入 yum install nagiosapt-get install nagios3 那樣簡單,但你真的感受你已經作了什麼。這個方法的一個問題就是,若是你之後要重複安裝,你或許已經忘記了你使用的一些配置選項或是丟失了必須的插件清單。在完美的世界中,你可能一直把你的步驟記錄到文檔中。不幸的是,不少人不是生活在完美的世界中。然而,好的一面是這裏有不少工具好比 Ansible,將幫助你自動化一些任務。這個方案的另一個好處就是 Ansible Playbooks 能夠做爲系統文檔服務。ios

我已經建立了一個冪等的 Ansible Playbook,從源碼安裝而且在 Ubuntu 14.04 LTS, Debian 7.5 和 CentOS 6.5 平臺測試了,這個 playbook 與 Nelmon 捆綁在一塊兒。服務器

playbook 作了什麼

一旦 playbook 執行,Ansible 將:ssh

  • 安裝 Apache 和 PHP
  • 安裝 Nagios 和 Plugins 的先決條件
  • 安裝 Centos 的 EPEL Repo (python-passlib 須要)
  • 建立一個 nagios 用戶和組
  • 下載 Nagios 和 Plugins 的 tar 包
  • 解壓,配置和編譯安裝這些包
  • 爲 nagiosadmin 用戶改變 htpasswd
  • 若是 SELinux 是在 enforcing 模式,改變訪問 /usr/local/nagios 的權限

這些給你一個基礎的 nagios 設置。它不是一個徹底的解決方案。目的是向你展現你可使用 Ansible 來作哪些標準化的設置。你固然也能夠把配置添加進這個 Playbook 以致於你能夠徹底從新安裝和配置你的 Nagios 設置。工具

首先要作什麼

你要作的第一件事情就是設置你的 Ansible,這個在這篇指南里面沒有包括進來,而後下載這些文件到你的服務器上,而後進入 ansible/nagios-src 目錄,在 group_vars 目錄有叫作 ‘all’ 的文件包含了這些變量。在這裏你應該改變的變量是 nagiosadminpass 變量,它控制着分配給 nagiosadmin 用戶的密碼。而後若是 Nagios 發行了一個新版本,我也不須要改變這個 Playbook,你能夠改變其餘的變量。測試

使用 Ansible 安裝 Nagios

site.yml 文件(在 nagios-src 根目錄)是主要的 playbook 文件,依賴於你的設置,若是你想改變這個文件中的一些參數。默認它會在你的全部主機上運行,你能夠經過把 hosts 變量設置到一個 Ansible 組裏面來改變這個。spa

此處輸入圖片的描述

另一個選項僅僅是在命令行上定義你的服務器。這個將在 srv-nagios-1 和 srv-nagios-2 運行這個 Playbook。插件

ansible-playbook site.yml -l srv-nagios-1,srv-nagios-2

以上命令將使用 ssh keys 登錄你的服務器而且嘗試使用你當前登錄的用戶。在個人環境變量中我建立了一個 deploy 用戶,而後像這樣代替運行 playbook:命令行

ansible-playbook site.yml -l srv-nagios-1,srv-nagios-2 -u deploy -s

-u 選項是指用戶,-s 選項是指使用 sudo。若是你已經改變了 site.yml 文件中的 hosts 變量,你也能夠不使用 -l (limit) 選項運行 playbook。code

ansible-playbook site.yml

此處輸入圖片的描述

Nagios 啓動和運行

如今你應該使用 Ansible 安裝完成了 Nagios。經過 http://[ip-address]/nagios 而且使用 nagiosadmin 用戶登錄你的站點。下一步是配置 Nagios。

相關文章
相關標籤/搜索