CentOS Stream 8自动化运维工具
导读:CentOS Stream 8 自动化运维工具与落地实践 一 工具全景与选型建议 配置管理与编排 Ansible:无代理、基于 Python、以 YAML 声明式编写 Playbook,上手快、可版本化管理,适合批量配置、应用发布与日常...
CentOS Stream 8 自动化运维工具与落地实践
一 工具全景与选型建议
- 配置管理与编排
- Ansible:无代理、基于 Python、以 YAML 声明式编写 Playbook,上手快、可版本化管理,适合批量配置、应用发布与日常变更。
- Puppet / Chef / SaltStack:适合大规模与标准化环境;Puppet/Chef 偏声明式与可重复交付,SaltStack 强调分布式与高速并发执行。
- CI/CD 与发布
- Jenkins:通用自动化服务器,插件丰富,适合多语言、多环境的构建、测试、部署流水线。
- GitLab CI/CD:与代码仓库无缝集成,适合一体化平台与内网交付场景。
- 基础设施即代码
- Terraform:以代码定义与编排云资源(网络、计算、存储等),便于环境一致性与可重复部署。
- 监控与可观测性
- Prometheus + Grafana:指标采集与时序可视化,支持灵活告警与面板定制。
- Zabbix / Nagios:传统企业级监控与告警,适合既有监控体系与设备级监控。
二 快速上手 Ansible
- 安装与准备
- 在控制节点安装 Ansible(仅需安装在控制机,受管节点无需安装 Ansible):
- 安装 EPEL 源:
sudo dnf install -y epel-release - 安装 Ansible:
sudo dnf install -y ansible - 验证版本:
ansible --version
- 安装 EPEL 源:
- 受管节点准备:确保可通过 SSH 免密登录(推荐),并具备 Python 3(RHEL/CentOS 8 系列自带 platform-python 供系统工具使用)。
- 在控制节点安装 Ansible(仅需安装在控制机,受管节点无需安装 Ansible):
- 主机清单与连通性测试
- 编辑清单文件(示例):
/etc/ansible/hosts[web] 192.168.10.11 192.168.10.12 [db] db01.example.com - 连通性测试:
ansible all -m ping
- 编辑清单文件(示例):
- 第一个 Playbook(安装与启动 Nginx)
- 示例文件:
install_nginx.yml--- - name: Ensure Nginx is installed and enabled hosts: web become: yes tasks: - name: Install EPEL repository ansible.builtin.dnf: name: epel-release state: present - name: Install Nginx ansible.builtin.dnf: name: nginx state: present - name: Enable and start Nginx ansible.builtin.service: name: nginx state: started enabled: yes - 执行:
ansible-playbook -i /etc/ansible/hosts install_nginx.yml
- 示例文件:
- 常用扩展
- 使用 Ansible Galaxy 获取角色:
ansible-galaxy role install geerlingguy.nginx - 动态清单(对接云/CMDB)、标签与并发、幂等与回滚策略,提升可维护性与安全性。
- 使用 Ansible Galaxy 获取角色:
三 监控与告警工具组合
- 命令行快速巡检
- 资源与进程:
top/htop、vmstat、free -h - 磁盘与 I/O:
df -h、iostat(需sysstat) - 网络:
ss、iftop(需 EPEL)、dstat - 历史与报告:
sar(需sysstat)
- 资源与进程:
- 平台化监控
- Prometheus + Grafana:采集系统与应用指标,Grafana 做可视化与面板展示,适合云原生与动态环境。
- Zabbix:企业级分布式监控,支持主机、服务、网络设备的全面监控与告警。
- Nagios:经典告警框架,适合传统架构与设备级监控。
四 自动化巡检与定时任务
- Shell 巡检脚本示例(保存为
check_sys.sh)#!/usr/bin/env bash echo "=== $(date) ===" echo "Uptime: $(uptime -p)" echo "CPU Load: $(cat /proc/loadavg | awk '{ print $1} ')" echo "Memory: $(free -h | awk '/^Mem/{ printf "%.2f%% used\n", $3/$2*100} ')" echo "Disk: $(df -h / | awk 'NR==2{ gsub(/%/,""); print $5"%"} ')" echo "Top 5 CPU processes:" ps -eo pid,ppid,cmd,%cpu --sort=-%cpu | head -6- 赋权:
chmod +x check_sys.sh - 定时执行(每日 09:00 发邮件,需本地 MTA 或 SMTP 配置)
0 9 * * * /usr/bin/bash /root/check_sys.sh | mail -s "Daily System Check $(date +\%F)" ops@example.com
- 赋权:
- 建议将巡检、备份、清理等任务纳入 cron,并配合日志轮转(
logrotate)与告警通道(邮件、企业微信、钉钉、Webhook)形成闭环。
五 实践建议
- 以 Ansible 为核心做配置与编排,Playbook 纳入 Git 管理,配合 Jenkins/GitLab CI 实现变更流水线。
- 基础设施变更用 Terraform 管理,保持“代码即环境”,与 Ansible 形成 IaC + 配置管理的组合。
- 监控采用 Prometheus + Grafana 做指标可视化与告警,关键业务与网络设备用 Zabbix 兜底。
- 统一 SSH 密钥 与 sudo 策略,开启 SELinux,在变更前后做备份与回滚预案,保障稳定性与可审计性。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: CentOS Stream 8自动化运维工具
本文地址: https://pptw.com/jishu/760881.html
