注:该文做者是 Patrick Ogenstad,原文地址是 Compile and Install Nagios with Ansiblepython
若是你决定尝试 Nagios 而且经过你的发行版软件管理系统来安装它,你或许注意到它的版本太老了。你想要的一些特性或是扩展在早期版本不支持。所以你决定下载 Nagios 源码包并用传统的方式安装。尽管这不像键入 yum install nagios
或 apt-get install nagios3
那样简单,但你真的感受你已经作了什么。这个方法的一个问题就是,若是你之后要重复安装,你或许已经忘记了你使用的一些配置选项或是丢失了必须的插件清单。在完美的世界中,你可能一直把你的步骤记录到文档中。不幸的是,不少人不是生活在完美的世界中。然而,好的一面是这里有不少工具好比 Ansible,将帮助你自动化一些任务。这个方案的另一个好处就是 Ansible Playbooks 能够做为系统文档服务。ios
我已经建立了一个幂等的 Ansible Playbook,从源码安装而且在 Ubuntu 14.04 LTS, Debian 7.5 和 CentOS 6.5 平台测试了,这个 playbook 与 Nelmon 捆绑在一块儿。服务器
一旦 playbook 执行,Ansible 将:ssh
这些给你一个基础的 nagios 设置。它不是一个彻底的解决方案。目的是向你展现你可使用 Ansible 来作哪些标准化的设置。你固然也能够把配置添加进这个 Playbook 以致于你能够彻底从新安装和配置你的 Nagios 设置。工具
你要作的第一件事情就是设置你的 Ansible,这个在这篇指南里面没有包括进来,而后下载这些文件到你的服务器上,而后进入 ansible/nagios-src
目录,在 group_vars 目录有叫作 ‘all’ 的文件包含了这些变量。在这里你应该改变的变量是 nagiosadminpass 变量,它控制着分配给 nagiosadmin 用户的密码。而后若是 Nagios 发行了一个新版本,我也不须要改变这个 Playbook,你能够改变其余的变量。测试
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
如今你应该使用 Ansible 安装完成了 Nagios。经过 http://[ip-address]/nagios 而且使用 nagiosadmin 用户登录你的站点。下一步是配置 Nagios。