gpt4 book ai didi

nagios - 使用 Ansible 安装 Nagios,主机变量

转载 作者:行者123 更新时间:2023-12-04 02:17:24 28 4
gpt4 key购买 nike

我正在学习 Ansible,我想安装带有多个受监控节点的 Nagios 服务器。我遵循的 Nagios 安装步骤是 from this tutorial on Digitalocean .

本教程的第 5 步让我感到困惑,因为这是我第一次使用 Ansible。这一步涉及主服务器上监控节点的配置文件,我使用这样的模板实现

- name: Configure Nagios server
hosts: master
sudo: true
vars:
nagios_slaves_config_dir: /etc/nagios/servers
nagios_config_file: /etc/nagios/nagios.cfg
tasks:
# shortened for brevity
- name: copy slaves config
template: src=../templates/guest.cfg.j2 dest=/etc/nagios/servers/{{ item }}.cfg owner=root mode=0644
with_items: groups['slaves']

模板看起来像这样

define host {
use linux-server
host_name {{ inventory_hostname }}
alias {{ inventory_hostname }}
address {{ hostvars['slave'].ansible_eth1.ipv4.address }}
}

define service {
use generic-service
host_name {{ inventory_hostname }}
service_description PING
check_command check_ping!100.0,20%!500.0,60%
}

此配置文件已创建,但 {{ inventory_hostname }} 变量是错误的 - 而不是 node_1 它声明 master

我如何为每个受监控的节点模板化配置文件,以便使用正确的值创建它?

:编辑:

一个想法是在受监控的节点上生成配置文件并将它们复制到主节点。明天试试。

最佳答案

您的游戏专门针对您的 master 服务器:

- name: Configure Nagios server
hosts: master
...

因此该任务将仅针对此节点(或名为 master 的库存组中的多个节点)运行。

然后,您似乎对如何从您希望监视的其他服务器(在您的案例中 slaves list 组中的所有内容)获取变量感到有些困惑。

inventory_hostname 将执行它在 jar 上所说的几乎所有内容 - 它将为您提供任务正在运行的服务器的主机名。在这种情况下,它只会成为 master

然而,这条线你走在正确的轨道上:

        address                 {{ hostvars['slave'].ansible_eth1.ipv4.address }}

但您应该改为使用在任务循环中传递给模板的 item(您使用 with_items: groups['slaves'] 循环遍历slaves 中的所有主机)。

所以你的模板看起来像这样:

define host {
use linux-server
host_name {{ hostvars[item].ansible_hostname }}
alias {{ hostvars[item].ansible_hostname }}
address {{ hostvars[item].ansible_eth0.ipv4.address }}
}

define service {
use generic-service
host_name {{ hostvars[item].ansible_hostname }}
service_description PING
check_command check_ping!100.0,20%!500.0,60%
}

这将在 master 上生成一个 Nagios 配置文件,其名称与 slaves 组下的 inventory 文件中的条目相同(这可以是任何但默认情况下是 IP 地址,短或slaves 组中每个服务器的完全限定域名),其中包含模板化的预期值。

或者,您可能需要重新考虑您的整个策略,以便针对受监控节点运行任务会在 Nagios 服务器上创建配置文件,从而允许您注册要使用中央 Nagios 服务器监控的服务器。

关于nagios - 使用 Ansible 安装 Nagios,主机变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33087719/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com