21点,12点,5点检查目标主机组中主机的运行状态,内存占有率,磁盘利用率,cpu利用率生成一份报告发送到我的邮箱的playbook
时间: 2023-08-09 18:09:52 浏览: 32
以下是一个简单的Ansible playbook示例,可以完成您所描述的任务:
```yaml
- hosts: target_hosts_group
gather_facts: yes
tasks:
- name: Check system stats
shell: |
echo "Hostname: {{ ansible_hostname }}"
echo "Uptime: $(uptime)"
echo "Memory usage: $(free -m | awk 'NR==2 {print $3/$2*100 "%"}')"
echo "Disk usage: $(df -h / | awk 'NR==2 {print $5}')"
echo "CPU usage: $(mpstat 1 1 | awk '/^Average:/ {print 100-$NF "%"}')"
register: stats_output
- name: Send report via email
mail:
to: your_email@example.com
subject: "System stats report for {{ ansible_date_time.date }}"
body: "{{ stats_output.stdout }}"
```
解释一下这个playbook:
- `hosts`指定了要检查系统状态的目标主机组。
- `gather_facts`设置为`yes`,这样Ansible会在执行任务之前先收集目标主机的系统信息,例如主机名、内存、磁盘和CPU使用情况等。
- `tasks`中的第一个任务使用`shell`模块运行一些命令来收集系统状态。这些命令会输出到stdout。`register`语句将stdout保存到`stats_output`变量中,以便稍后使用。
- 第二个任务使用`mail`模块将收集到的系统状态通过电子邮件发送给您。`to`参数设置为您的电子邮件地址,`subject`设置为报告的主题,`body`设置为`stats_output`变量中保存的系统状态输出。
请注意,此playbook假定您已经配置了Ansible以便可以在目标主机上运行命令并发送电子邮件。如果您还没有为此进行配置,请参阅Ansible文档以获取更多信息。