ansible - 为服务添加到 nagiosXI 创建 Ansible 角色
问题描述
我正在尝试使用以下 CURL 命令向 NagiosXI 添加服务。
curl -k -XPOST "https://16.231.22.60/nagiosxi/api/v1/config/service?apikey=qfOQpKFORCNo7HPunDUsSjW7f2rNNmrdVv3kvYpmQcNdSS2grV2jeXKsgbv3QgfL&pretty=1" -d "host_name=***{{ item }}***&***service_description=Service status for: sshd***&use=xiwizard_ncpa_service&check_command=check_xi_ncpa\! -t 5nidNag -P 5693 -M services -q service=sshd,status=running&check_interval=5&retry_interval=1"
在上面的命令中,只有主机名和服务描述描述发生了变化。我正在使用 Item 模块调用主机名。并手动添加服务描述。如果我需要添加 50 个服务,我需要编写此命令 50 次。
我打算通过 ansible 角色来编写它。有人可以帮我解决这个问题。
解决方案
您可以执行以下操作:
---
- name: Nagios Config
gather_facts: False
hosts: localhost
vars:
servers:
- 10.100.10.5
- 10.100.10.6
- 10.100.10.7
services:
- ssh
- https
- smtp
tasks:
- name: Add Nagios services
debug:
msg: "curl -host {{item.0}} with service {{ item.1 }}"
with_nested:
- "{{ servers }}"
- "{{ services }}"
得到以下输出:
TASK [Add Nagios services] ********************************************************************************************************
ok: [localhost] => (item=None) => {
"msg": "curl -host 10.100.10.5 with service ssh"
}
ok: [localhost] => (item=None) => {
"msg": "curl -host 10.100.10.5 with service https"
}
ok: [localhost] => (item=None) => {
"msg": "curl -host 10.100.10.5 with service smtp"
}
ok: [localhost] => (item=None) => {
"msg": "curl -host 10.100.10.6 with service ssh"
}
ok: [localhost] => (item=None) => {
"msg": "curl -host 10.100.10.6 with service https"
}
ok: [localhost] => (item=None) => {
"msg": "curl -host 10.100.10.6 with service smtp"
}
ok: [localhost] => (item=None) => {
"msg": "curl -host 10.100.10.7 with service ssh"
}
ok: [localhost] => (item=None) => {
"msg": "curl -host 10.100.10.7 with service https"
}
ok: [localhost] => (item=None) => {
"msg": "curl -host 10.100.10.7 with service smtp"
}
uri
如果模块不符合您的要求,请尝试该模块,选择shell
一个。我已经反映了debug
一个只是为了回答这个问题。
推荐阅读
- asp.net-core - ASP.NET 核心上真的需要反向代理吗?
- json - 是否可以使用 Dart 从 REST api 部分读取 JSON 响应
- php - Yii2:checkboxList 不显示 ArrayDataProvider
- firebase - Firebase 云功能使文档中的用户对象保持最新
- asp.net-core - 当我编译我的 ASP.NET Core 3 应用程序时,我的已发布文件夹如何自动更新?
- python - 使用 plt.legend 编辑时,Seaborn 散点图图例会中断
- javascript - 在 javascript 验证后,即使存在错误,也会执行该功能
- vba - 如何关闭带壳的应用程序
- sas - 如何根据多个指标变量创建类变量
- mysql - 我无法以任何方式连接到 MySQL 服务器(在 Windows 上)