温馨提示×

centos context如何进行自动化运维

小樊
47
2025-11-20 01:47:00
栏目: 智能运维

CentOS 自动化运维实战指南

一 工具选型与适用场景

  • Ansible:无代理、基于 SSH、以 YAML 剧本编排,适合快速落地与中小规模环境。
  • Puppet / Chef:适合大规模与复杂配置管理,强调声明式与幂等,需维护控制端/代理或工作站。
  • Shell 脚本 + Cron:轻量、灵活,适合简单任务与定时作业。
  • 容器化(Docker):隔离应用与依赖,配合镜像仓库与 CI/CD 实现标准化交付。
  • 监控与可视化:结合 Cockpit、Zabbix、Prometheus 等实现指标采集、告警与可视化。

二 快速上手 Ansible

  • 安装与配置
    • 安装:sudo yum install -y epel-release && sudo yum install -y ansible
    • 配置:编辑 /etc/ansible/ansible.cfg(如设置默认 inventory、并发等)
    • 清单:在 /etc/ansible/hosts 定义分组
      [webservers]
      web1.example.com
      web2.example.com
      
      [databases]
      db1.example.com
      
  • 示例 Playbook(安装并启动 httpd
    ---
    - 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 /etc/ansible/hosts site.yml
    • 幂等:重复执行不产生副作用;如需回滚,使用版本化 Playbook 与标签。

三 常见场景与示例

  • 批量变更与合规巡检
    • 使用 Ansible 的 shell/command 模块批量执行命令,结合 registerfailed_when 做合规判断与阻断变更。
  • 定时任务
    • 在目标机使用 Croncrontab -e,如每日备份
      0 2 * * * /usr/local/bin/backup.sh >> /var/log/backup.log 2>&1
      
  • 容器化交付
    • 示例 Dockerfile
      FROM nginx:latest
      COPY ./html /usr/share/nginx/html
      EXPOSE 80
      CMD ["nginx", "-g", "daemon off;"]
      
    • 构建与运行:docker build -t my-nginx . && docker run -d -p 80:80 my-nginx
    • 交付:结合 Jenkins/GitLab CI 实现镜像构建、推送与滚动升级。

四 监控与告警

  • 基础监控与可视化
    • 命令行:top、htop、vmstat、free、iostat、netstat
    • 可视化:Cockpit(Web 管理)、Monitorix
  • 第三方监控与告警
    • Zabbix、Prometheus(含 Node Exporter)、Nagios
    • 结合脚本或 Alertmanager 实现邮件/企业微信/钉钉等通知。

五 落地路线与最佳实践

  • 标准化与可重复
    • 使用 Kickstart 实现系统自动化安装;用 Git 管理 Playbook/脚本/清单,配合 CI 做语法检查与演练。
  • 幂等与可回滚
    • Playbook/Manifest 保持幂等;按“版本 + 标签”发布,保留回滚路径。
  • 安全与合规
    • 最小权限(become 按需)、密钥登录、清单分组与变量分层、启用 SELinux、定期漏洞扫描。
  • 观测与改进
    • 建立指标与日志基线,设置告警阈值,定期复盘变更与故障。

0