#头条创作挑战赛#

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模块打印出来。根据实际需求,你可以根据这个示例进行修改和扩展。