feat: 1) ListGroups返回组内主机详细信息 2) 前端刷新间隔改为5分钟 3) 命令执行和Playbook页面主机组支持展开显示组内主机
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
---
|
||||
- name: 检测主机 CPU、内存、磁盘占用
|
||||
hosts: all
|
||||
gather_facts: yes
|
||||
vars:
|
||||
warn_threshold: 80
|
||||
crit_threshold: 90
|
||||
|
||||
tasks:
|
||||
- name: 获取 CPU 使用率
|
||||
shell: |
|
||||
top -bn1 | grep "Cpu(s)" | awk '{print "cpu_usage:" $2}' | cut -d'%' -f1
|
||||
register: cpu_result
|
||||
|
||||
- name: 获取内存使用率
|
||||
shell: |
|
||||
free | grep Mem | awk '{printf "memory_used:%.0f\nmemory_total:%.0f\n", $3, $2}'
|
||||
register: mem_result
|
||||
|
||||
- name: 获取磁盘使用率
|
||||
shell: |
|
||||
df -h | grep -E '/$|/data' | awk '{print $1 ":" $5}'
|
||||
register: disk_result
|
||||
|
||||
- name: 格式化输出
|
||||
set_fact:
|
||||
cpu_usage: "{{ cpu_result.stdout_lines[0].split(':')[1] | trim }}"
|
||||
memory_used_mb: "{{ (mem_result.stdout_lines[0].split(':')[1] | trim | float / 1024) | round | int }}"
|
||||
memory_total_mb: "{{ (mem_result.stdout_lines[1].split(':')[1] | trim | float / 1024) | round | int }}"
|
||||
disk_usage: "{{ disk_result.stdout_lines }}"
|
||||
|
||||
- name: 显示检测结果
|
||||
debug:
|
||||
msg: |
|
||||
================== 主机检测报告 ==================
|
||||
主机名: {{ inventory_hostname }}
|
||||
CPU 使用率: {{ cpu_usage }}%
|
||||
内存使用: {{ memory_used_mb }} MB / {{ memory_total_mb }} MB
|
||||
磁盘使用:
|
||||
{% for disk in disk_usage %}
|
||||
- {{ disk }}
|
||||
{% endfor %}
|
||||
=================================================
|
||||
|
||||
- name: 告警判断
|
||||
fail:
|
||||
msg: "{{ inventory_hostname }} CPU 使用率超过 {{ crit_threshold }}%: {{ cpu_usage }}%"
|
||||
when: cpu_usage | int >= crit_threshold
|
||||
|
||||
- name: 警告判断
|
||||
warn:
|
||||
msg: "{{ inventory_hostname }} CPU 使用率超过 {{ warn_threshold }}%: {{ cpu_usage }}%"
|
||||
when: cpu_usage | int >= warn_threshold and cpu_usage | int < crit_threshold
|
||||
@@ -0,0 +1,38 @@
|
||||
---
|
||||
# 系统信息检查
|
||||
- name: System Information
|
||||
hosts: "{{ target_hosts | default('all') }}"
|
||||
gather_facts: yes
|
||||
|
||||
tasks:
|
||||
- name: Display OS info
|
||||
debug:
|
||||
msg: "OS: {{ ansible_facts['distribution'] }} {{ ansible_facts['distribution_version'] }}"
|
||||
|
||||
- name: Display hostname
|
||||
debug:
|
||||
msg: "Hostname: {{ ansible_facts['hostname'] }}"
|
||||
|
||||
- name: Display IP addresses
|
||||
debug:
|
||||
msg: "IP: {{ ansible_facts['default_ipv4']['address'] }}"
|
||||
|
||||
- name: Display memory info
|
||||
debug:
|
||||
msg: "Memory: {{ (ansible_facts['memtotal_mb'] / 1024) | round(2) }} GB"
|
||||
|
||||
- name: Display CPU info
|
||||
debug:
|
||||
msg: "CPU: {{ ansible_facts['processor_vcpus'] }} vCPUs"
|
||||
|
||||
- name: Display disk space
|
||||
debug:
|
||||
msg: "Disk: {{ ansible_facts['mounts'][0]['size_total'] | default(0) | int / 1024 / 1024 / 1024 | round(2) }} GB"
|
||||
|
||||
- name: Uptime
|
||||
command: uptime -s
|
||||
register: uptime
|
||||
|
||||
- name: Show uptime
|
||||
debug:
|
||||
msg: "Uptime since: {{ uptime.stdout }}"
|
||||
@@ -0,0 +1,51 @@
|
||||
---
|
||||
# 安装Docker
|
||||
- name: Install Docker
|
||||
hosts: "{{ target_hosts | default('all') }}"
|
||||
become: yes
|
||||
vars:
|
||||
docker_version: latest
|
||||
|
||||
tasks:
|
||||
- name: Install required packages
|
||||
apt:
|
||||
name:
|
||||
- apt-transport-https
|
||||
- ca-certificates
|
||||
- curl
|
||||
- gnupg
|
||||
- lsb-release
|
||||
state: present
|
||||
when: ansible_os_family == "Debian"
|
||||
|
||||
- name: Add Docker GPG key
|
||||
apt_key:
|
||||
url: https://download.docker.com/linux/{{ ansible_distribution | lower }}/gpg
|
||||
state: present
|
||||
|
||||
- name: Add Docker repository
|
||||
apt_repository:
|
||||
repo: "deb [arch=amd64] https://download.docker.com/linux/{{ ansible_distribution | lower }} {{ ansible_distribution_release }} stable"
|
||||
state: present
|
||||
when: ansible_os_family == "Debian"
|
||||
|
||||
- name: Install Docker
|
||||
apt:
|
||||
name:
|
||||
- docker-ce
|
||||
- docker-ce-cli
|
||||
- containerd.io
|
||||
- docker-compose-plugin
|
||||
state: present
|
||||
|
||||
- name: Start Docker service
|
||||
service:
|
||||
name: docker
|
||||
state: started
|
||||
enabled: yes
|
||||
|
||||
- name: Add user to docker group
|
||||
user:
|
||||
name: "{{ ansible_user }}"
|
||||
groups: docker
|
||||
append: yes
|
||||
@@ -0,0 +1,53 @@
|
||||
---
|
||||
# 部署Nginx
|
||||
- name: Deploy Nginx
|
||||
hosts: "{{ target_hosts | default('all') }}"
|
||||
become: yes
|
||||
vars:
|
||||
nginx_worker_processes: auto
|
||||
nginx_worker_connections: 1024
|
||||
server_name: localhost
|
||||
|
||||
tasks:
|
||||
- name: Install Nginx
|
||||
apt:
|
||||
name: nginx
|
||||
state: present
|
||||
when: ansible_os_family == "Debian"
|
||||
|
||||
- name: Install Nginx
|
||||
yum:
|
||||
name: nginx
|
||||
state: present
|
||||
when: ansible_os_family == "RedHat"
|
||||
|
||||
- name: Configure Nginx
|
||||
template:
|
||||
src: templates/nginx.conf.j2
|
||||
dest: /etc/nginx/nginx.conf
|
||||
mode: '0644'
|
||||
notify: Restart Nginx
|
||||
|
||||
- name: Create site configuration
|
||||
template:
|
||||
src: templates/site.conf.j2
|
||||
dest: /etc/nginx/conf.d/{{ server_name }}.conf
|
||||
mode: '0644'
|
||||
notify: Reload Nginx
|
||||
|
||||
- name: Start Nginx
|
||||
service:
|
||||
name: nginx
|
||||
state: started
|
||||
enabled: yes
|
||||
|
||||
handlers:
|
||||
- name: Restart Nginx
|
||||
service:
|
||||
name: nginx
|
||||
state: restarted
|
||||
|
||||
- name: Reload Nginx
|
||||
service:
|
||||
name: nginx
|
||||
state: reloaded
|
||||
@@ -0,0 +1,30 @@
|
||||
---
|
||||
# 更新系统包
|
||||
- name: Update System Packages
|
||||
hosts: all
|
||||
become: yes
|
||||
vars:
|
||||
update_cache: yes
|
||||
|
||||
tasks:
|
||||
- name: Update apt cache
|
||||
apt:
|
||||
update_cache: yes
|
||||
when: ansible_os_family == "Debian"
|
||||
|
||||
- name: Upgrade all packages
|
||||
apt:
|
||||
upgrade: dist
|
||||
autoremove: yes
|
||||
when: ansible_os_family == "Debian"
|
||||
|
||||
- name: Update yum cache
|
||||
yum:
|
||||
update_cache: yes
|
||||
when: ansible_os_family == "RedHat"
|
||||
|
||||
- name: Upgrade all packages
|
||||
yum:
|
||||
name: "*"
|
||||
state: latest
|
||||
when: ansible_os_family == "RedHat"
|
||||
Reference in New Issue
Block a user