ansible - Ansible playbook:如何获取服务器启动或关闭状态
问题描述
我正在设计一个仪表板,用于使用 ansible playbook 显示所有服务器状态(上/下)、可用 RAM、内核版本、处理器类型等。使用收集事实,我可以轻松获取所有服务器参数,但不确定如何使用剧本启动/关闭服务器。如果服务器关闭,ansible 无法连接到服务器,因此无法使用“ping”模块。请帮我。如果任何服务器的剧本失败,有什么方法可以捕获返回值?
ansible 连接的顺序是 1. 建立 ssh 连接 2. 如果 ssh 成功,收集事实 3. 一个一个执行 playbook taks。如果 ping 是 playbook 中的任务,则控制甚至不会到达该位置,并且 ansible 会在步骤 1 本身中引发连接错误。请参考以下https://docs.ansible.com/ansible/2.4/ping_module.html
另外,请注意我的库存包含许多服务器,我需要获取每个服务器的服务器状态。
解决方案
您可以根据评论使用 ping 的结果,或者如果您想检查不同的端口,请使用 wait_for:
- hosts: all
tasks:
- wait_for: host=192.168.87.100 port=80 timeout=1
- debug: msg=ok
推荐阅读
- c++ - 如何跟踪源代码调用堆栈
- r - 无法在 R 中安装名为“hemp”的包
- apache-spark - EMR 步骤中的 Spark 应用程序级别日志
- reactjs - 不能在 React 中使用 SCSS
- javascript - Vue JS Hooper Image Carousel 问题(在 NuxtJS 项目中使用)
- c# - 在使用 Expression 创建的 List 上调用 Select 方法,并在 Select 方法中使用传递的 Func<>
- google-apps-script - 锁定服务在使用 Apps 脚本的 Google 表格中不起作用
- typescript - 尽管在 .eslintrc.js 中提到了规则,但导入错误
- asp.net-core - nginx 作为反向代理会丢失 cookie
- flutter - 在颤动中截屏时出现黑屏