网站首页 > 技术文章 正文
1)收集服务器系统信息:
# playbook.yml
---
- name: Collect system facts
hosts: servers
gather_facts: yes
tasks:
- name: Gather system facts
debug:
var: ansible_facts
这个示例使用gather_facts设置为yes来收集服务器的系统信息,包括操作系统版本、内核版本、CPU和内存信息等。然后使用debug模块来打印收集到的信息。
2)收集服务器硬盘使用状况:
# playbook.yml
---
- name: Collect disk usage
hosts: servers
tasks:
- name: Gather disk usage
command: df -h
register: disk_usage
- name: Print disk usage
debug:
var: disk_usage.stdout_lines
这个示例使用command模块执行df -h命令来获取服务器硬盘使用状况,并将输出结果保存到disk_usage变量中。然后使用debug模块打印硬盘使用状况。
3)收集服务器内存使用状况:
# playbook.yml
---
- name: Collect memory usage
hosts: servers
tasks:
- name: Gather memory usage
command: free -m
register: memory_usage
- name: Print memory usage
debug:
var: memory_usage.stdout_lines
这个示例使用command模块执行free -m命令来获取服务器内存使用状况,并将输出结果保存到memory_usage变量中。然后使用debug模块打印内存使用状况。
4)收集服务器CPU使用状况:
# playbook.yml
---
- name: Collect CPU usage
hosts: servers
tasks:
- name: Gather CPU usage
command: top -bn1 | grep "Cpu(s)"
register: cpu_usage
- name: Print CPU usage
debug:
var: cpu_usage.stdout_lines
这个示例使用command模块执行top -bn1 | grep "Cpu(s)"命令来获取服务器CPU使用状况,并将输出结果保存到cpu_usage变量中。然后使用debug模块打印CPU使用状况。
5)收集服务器网络接口信息:
# playbook.yml
---
- name: Collect network interface info
hosts: servers
tasks:
- name: Gather network interface info
command: ifconfig
register: network_info
- name: Print network interface info
debug:
var: network_info.stdout_lines
这个示例使用command模块执行ifconfig命令来获取服务器网络接口信息,并将输出结果保存到network_info变量中。然后使用debug模块打印网络接口信息。以上示例中,hosts字段指定了要收集信息的服务器,可以是单个服务器或服务器组。register字段用于保存命令执行结果的变量。debug模块用于打印收集到的信息。根据需要可以修改命令和任务来收集其他信息。
下面列举一个相对完整的示例:
---
- name: Collect server status and resource usage
hosts: servers
gather_facts: yes # 收集服务器的事实信息
tasks:
- name: Get hostname
debug:
msg: "Hostname is {{ ansible_hostname }}" # 打印服务器的主机名
- name: Get CPU information
debug:
msg: "CPU model is {{ ansible_processor | first }}" # 打印CPU型号
- name: Get memory information
debug:
msg: "Total memory is {{ ansible_memtotal_mb }} MB" # 打印内存总量
- name: Get disk usage
ansible.builtin.shell: df -h
register: disk_usage_output # 执行shell命令获取磁盘使用情况,并将输出保存到变量中
- name: Print disk usage
debug:
var: disk_usage_output.stdout_lines # 打印磁盘使用情况的输出
- name: Get network interfaces
ansible.builtin.shell: ip a
register: network_interfaces_output # 执行shell命令获取网络接口信息,并将输出保存到变量中
- name: Print network interfaces
debug:
var: network_interfaces_output.stdout_lines # 打印网络接口信息的输出
- name: Get running processes
ansible.builtin.shell: ps aux
register: processes_output # 执行shell命令获取正在运行的进程信息,并将输出保存到变量中
- name: Print running processes
debug:
var: processes_output.stdout_lines # 打印正在运行的进程信息的输出
- name: Get system uptime
ansible.builtin.command: uptime
register: uptime_output # 执行命令获取系统运行时间信息,并将输出保存到变量中
- name: Print system uptime
debug:
var: uptime_output.stdout # 打印系统运行时间信息的输出
- name: Get logged-in users
ansible.builtin.command: who
register: users_output # 执行命令获取已登录用户信息,并将输出保存到变量中
- name: Print logged-in users
debug:
var: users_output.stdout_lines # 打印已登录用户信息的输出
- name: Get system load average
ansible.builtin.setup:
filter: ansible_load_avg # 使用setup模块获取系统负载信息
- name: Print system load average
debug:
var: ansible_facts.ansible_load_avg # 打印系统负载信息
这个示例Playbook使用了Ansible的一些常用模块和变量,包括debug模块用于打印信息、ansible.builtin.shell模块和ansible.builtin.command模块用于执行Shell命令和命令、ansible.builtin.setup模块用于收集服务器的事实信息。同时,也展示了如何使用register关键字将命令执行结果保存到变量中,并使用debug模块打印出来。根据实际需求,你可以根据这个示例进行修改和扩展。
猜你喜欢
- 2024-09-20 非常详细!如何理解表格存储的多版本、生命周期和有效版本偏差
- 2024-09-20 6种快速统计代码执行时间的方法,真香
- 2024-09-20 Java 开发者最困惑的四件事(java开发遇到问题如何解决)
- 2024-09-20 【Java多线程】定时器Timer(java定时器线程池)
- 2024-09-20 还在用new Date计算任务执行时间?强烈建议使用这个API
- 2024-09-20 “抄”代码,再也不用上谷歌复制粘贴了
- 2024-09-20 java获取当前时间的四种方法代码实例
- 2024-09-20 撸完这篇线程池,我快咳血了(线程池有什么用)
- 2024-09-20 JAVA轮询遍历两个数组进行比较(遍历数组 java)
- 2024-09-20 蒙圈了?System.currentTimeMillis()存在性能问题
- 1514℃桌面软件开发新体验!用 Blazor Hybrid 打造简洁高效的视频处理工具
- 563℃Dify工具使用全场景:dify-sandbox沙盒的原理(源码篇·第2期)
- 508℃MySQL service启动脚本浅析(r12笔记第59天)
- 486℃服务器异常重启,导致mysql启动失败,问题解决过程记录
- 485℃启用MySQL查询缓存(mysql8.0查询缓存)
- 465℃「赵强老师」MySQL的闪回(赵强iso是哪个大学毕业的)
- 445℃mysql服务怎么启动和关闭?(mysql服务怎么启动和关闭)
- 442℃MySQL server PID file could not be found!失败
- 最近发表
- 标签列表
-
- c++中::是什么意思 (83)
- 标签用于 (65)
- 主键只能有一个吗 (66)
- c#console.writeline不显示 (75)
- pythoncase语句 (81)
- es6includes (73)
- windowsscripthost (67)
- apt-getinstall-y (86)
- node_modules怎么生成 (76)
- c++int转char (75)
- static函数和普通函数 (76)
- el-date-picker开始日期早于结束日期 (70)
- js判断是否是json字符串 (67)
- checkout-b (67)
- c语言min函数头文件 (68)
- asynccallback (71)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- & (66)
- java (73)
- js数组插入 (83)
- mac安装java (72)
- eacces (67)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)