Ansible

Ansible 基础与运维

·3 分钟阅读·1147 字

Ansible 自动化运维工具基础概念、组件、执行模式与实战示例

📋 目录

Ansible 基础与运维

一、Ansible 架构

组件说明
管理节点安装 Ansible 的控制机
被控机器被管理目标,无 Agent,SSH 协议连接
Inventory主机清单(静态文件/动态脚本)
Module功能模块(yum、copy、service、template)
PlaybookYAML 格式的任务编排
Roles标准化目录结构,复用任务
Plugins插件扩展(连接、回调、过滤器)
Facts被控机系统变量

二、四种执行模式

模式命令场景
ad-hocansible all -m shell -a "df -h"单条临时命令
playbookansible-playbook xxx.yml批量任务编排
roles目录规范化复杂项目复用
galaxyansible-galaxy install社区角色仓库

三、Handler 与 Notify 机制

Handler 是一组预定义的任务,只有被其他任务 notify 触发时才执行,常用于配置变更后的服务重启。

特性

  • 本质是普通任务,通过 name 唯一标识
  • 即使多个任务 notify 同一个 Handler,Handler 也只会执行一次
  • Handler 在 Playbook 所有任务执行完成后统一执行

实战示例:修改 Nginx 配置后重启

- name: 部署 Nginx 配置文件
  template:
    src: nginx.conf.j2
    dest: /etc/nginx/nginx.conf
  notify:
    - restart nginx

handlers:
  - name: restart nginx
    service:
      name: nginx
      state: restarted

四、Ansibe 与其他工具对比

对比项AnsibleSaltStack
通信方式无 Agent,SSH 协议有 Agent,ZeroMQ 消息队列
配置语言YAMLYAML + Jinja
适用规模中小规模(数百台)海量机器(数千+)
性能SSH 协议有一定开销Agent 模式性能更强

关联文档

  • ../linux/system/SSH 认证原理与配置 — Ansible 依赖 SSH 协议
  • ../linux/system/Linux — Linux 系统管理