温馨提示×

CentOS虚拟机如何进行自动化运维

小樊
44
2025-12-21 09:08:51
栏目: 云计算

CentOS虚拟机自动化运维实践指南

一、总体架构与工具选型

  • 配置管理与编排:优先选用Ansible(无代理、基于SSH、上手快),在大规模或强合规场景可考虑Puppet/Chef/SaltStack
  • 持续交付:JenkinsGitLab CI/CD用于构建、测试、发布一体化流水线。
  • 基础设施即代码:Terraform管理云上/虚拟化资源(配合Ansible做配置)。
  • 监控与告警:Prometheus + GrafanaZabbixNagios覆盖指标与可视化。
  • 日志分析:**ELK(Elasticsearch/Logstash/Kibana)**集中化日志。
  • 虚拟化管控(宿主机为Linux/KVM):用libvirt/virsh批量启停、备份、自动启动与恢复。
  • 轻量脚本:Shell/Python用于胶水逻辑、巡检与自研工具。

二、快速落地步骤

  • 环境准备
    • 在控制机安装Ansible:sudo yum install -y epel-release && sudo yum install -y ansible。
    • 生成密钥并分发到所有虚拟机:ssh-keygen -t rsa -P ‘’;ssh-copy-id user@vm_ip。
    • 规划Inventory(/etc/ansible/hosts 或项目目录):
      [webservers]
      192.168.1.10
      192.168.1.11
      [db]
      192.168.1.20
  • 标准化初始化Playbook(示例要点)
    • 关闭不必要服务与加固:按需关闭防火墙/SELinux或配置合规规则。
    • 网络与时间:配置静态IP(/etc/sysconfig/network-scripts/ifcfg-ens33)、设置时区、配置NTP/chrony并定时同步。
    • 基础软件与用户:安装常用包(如wget/net-tools/vim)、创建运维用户并加入wheel、分发公钥。
  • 应用部署Playbook(示例)
    • 安装并启动服务:
      • hosts: webservers
        become: yes
        tasks:
        • name: Install Apache
          yum: name=httpd state=present
        • name: Start and enable Apache
          service: name=httpd state=started enabled=yes
    • 运行:ansible-playbook -i inventory webserver.yml。
  • 定时与巡检
    • 定时任务:在目标机使用Cron执行备份/清理/巡检脚本。
    • 轻量巡检脚本:磁盘阈值告警、服务状态检查等,配合邮件或企业微信/钉钉Webhook通知。

三、虚拟机生命周期自动化(宿主机为KVM)

  • 常用virsh命令
    • 列表与状态:virsh list --all
    • 启动/关机:virsh start ;virsh shutdown (优雅关机)
    • 强制断电:virsh destroy (相当于拔电,谨慎使用)
    • 挂起/恢复:virsh suspend ;virsh resume
    • 随宿主机启动:virsh autostart
    • 备份与恢复:virsh dumpxml > /backup/.xml;virsh define /backup/.xml
    • 取消定义(删除定义,不删磁盘):virsh undefine
  • 批量关机脚本示例
    • #!/bin/bash
      vms=(“vm1” “vm2” “vm3”)
      for vm in “${vms[@]}”; do
      virsh shutdown “$vm”
      sleep 10
      done
      提示:优雅关机优先,超时再考虑destroy;批量变更前先备份XML与重要数据。

四、CI/CD与监控日志联动

  • 流水线设计
    • 代码提交触发Jenkins/GitLab CI构建与单元测试;
    • 制品上传(如RPM/镜像仓库);
    • 使用Ansible在目标虚拟机上滚动发布(分批、回滚策略、健康检查)。
  • 监控告警
    • Prometheus采集主机与应用指标,Grafana做可视化与阈值告警;
    • Zabbix做主机/服务可用性监控与事件通知。
  • 日志治理
    • Filebeat/rsyslog采集日志至ELK,实现错误聚类、检索与可视化。

五、安全与最佳实践

  • 加固与合规:最小权限、禁用不必要端口与服务、密钥登录、启用SELinux或等效机制、定期补丁。
  • 幂等与可重入:Playbook/脚本需多次运行结果一致,避免“重复创建/重复重启”。
  • 错误处理与回滚:关键步骤加判断与回滚路径,保留失败现场日志。
  • 模块化与复用:使用Ansible Roles动态Inventory,将复杂配置拆解为可维护单元。
  • 变更管控:代码化(Git)管理Playbook与清单,评审后上线,配合灰度/金丝雀发布。

0