1.编写ansibleyaml
bash
- name: xunjian
hosts: ddd
tasks:
- name: 运行脚本取资源使用率值并追加结果,可以自定义
shell: |
CPU=$(top -bn1 | sed -n '3p' | awk '{print $2+$4}' | awk '{printf("%s%%\n",$1)}')
MEM=$(free -m | awk 'NR==2{printf" %s/%sMB (%.2f%%)\n", $3,$2,$3*100/$2 }')
DISK=$(df -hT | grep -w "/" | awk '{print $6}')
IP=$(ifconfig |grep 192.168|awk '{print $2}')
echo "$IP $HOSTNAME $CPU $MEM $DISK" > /tmp/cpumemdisk-$(hostname).txt
args:
executable: /bin/bash
- name: 获取主机名
shell: hostname
register: hostname_result
changed_when: false
- name: 收集监控文件
fetch:
src: "/tmp/cpumemdisk-{{ hostname_result.stdout }}.txt"
dest: "/tmp/collected/"
flat: yes
- name: 本地合并文件
hosts: localhost
tasks:
- name: 创建合并目录
file:
path: "/tmp/merged_monitor"
state: directory
- name: 执行合并
shell: |
find /tmp/collected -name '*.txt' -exec cat {} \; > /tmp/merged_monitor/$(date '+%Y-%m-%d-%H')-combined.txt
2、再创建几个文件,然后运行脚本,注意修改主机组
bash
mkdir /tmp/merged_monitor -p
mkdir /tmp/collected_monitor -p
mkdir /tmp/ merged_monitor -p
ansible-playbook 1.yaml
cat /tmp/merged_monitor/$(date '+%Y-%m-%d-%H')-combined.txt