前言
不快人快语,不东拉西扯。
速战速决,五分钟学到一个工作用得上的技巧。
通过一个个具体的实战案例,来活泼演示 Ansible 的用法。
需要
我须要定期巡检或定时监控我公司的所有站点的首页的可用性状态。
Ansible Playbook 实战脚本
check_url_status.yml
如下:
---
- hosts: localhost
gather_facts: no
serial: 10
tasks:
- name: check url status
uri:
url: "{{item}}"
timeout: 10
return_content: no
follow_redirects: safe
validate_certs: yes
with_items: "{{url_list}}"
vars:
url_list:
- https://www.baidu.com
- https://www.taobao.com
- https://www.qq.com
通过 ansible-playbook ./check_url_status.yml
即可,返回后果如下:
具体阐明
- 这里应用
ansible-playbook
来执行,以编排好的「剧本」模式执行。 hosts: localhost
在本机执行此次工作,也能够指定其余机器;serial: 10
: 明确定义 Ansible 如何批量执行以后剧本的指标uri
: 应用了 URI 插件,参考链接:https://docs.ansible.com/ansi…url
: 具体的 要巡检的站点的 URL 地址item
和with_items
: 通过这 2 个参数实现循环批量执行vars
: 定义该 Playbook 中用到的变量。
返回 json
如果须要返回 json 做进一步解决,能够应用 json callback plugin。如下:
#!/bin/bash
export ANSIBLE_CALLBACK_WHITELIST=json
export ANSIBLE_STDOUT_CALLBACK=json
ansible-playbook ./check_url_status.yml > ./url_status_$(date +"%Y-%m-%d").json
具体阐明
ANSIBLE_CALLBACK_WHITELIST=json
: 指定 Ansible Callback Whitelist 为 json;Callback 官网文档:https://docs.ansible.com/ansi…ANSIBLE_STDOUT_CALLBACK
: 指定规范输入采纳json
callback 插件,输入内容为 json 格局。json
callback 插件官网文档:https://docs.ansible.com/ansi…- 另外还有一个
syslog_json
插件:https://docs.ansible.com/ansi…
EOF
三人行, 必有我师; 常识共享, 天下为公. 本文由东风微鸣技术博客 EWhisper.cn 编写.