Ansible功能简介

一、Ansible 定义

Ansible 是一款基于 Python 开发的自动化运维工具,通过 SSH 协议实现无代理(Agentless)的跨主机批量管理,适用于系统配置、软件部署、文件传输、命令执行等场景‌。其核心特点包括:

模块化架构‌:通过调用预置模块完成任务,自身仅提供执行框架‌;
低侵入性‌:无需在受控节点安装客户端,直接通过 SSH 通信‌;
跨平台支持‌:可管理 Linux、Windows 及容器等异构环境‌。


二、Ansible 常用模块分类

  1. ‌基础操作类‌
    ping‌:测试主机网络连通性‌;
    command‌/‌shell‌:执行命令行指令(command 不支持管道符,shell 支持)‌;
    script‌:在远程主机运行本地脚本‌;
    setup‌:收集主机系统信息(如硬件、环境变量)‌。
  2. ‌文件管理类‌
    copy‌:从控制节点复制文件到受控节点‌;
    file‌:管理文件属性(权限、所有权)或目录结构‌;
    replace‌:修改文件内容‌;
    archive‌/‌unarchive‌:打包/解压文件‌。
  3. ‌系统配置类‌
    user‌/‌group‌:管理用户和用户组‌;
    hostname‌:修改主机名‌;
    cron‌:配置定时任务‌;
    mount‌:挂载文件系统‌。
  4. ‌软件与服务管理类‌
    yum‌/‌apt‌:管理 RedHat/CentOS 或 Debian/Ubuntu 系统的软件包‌;
    service‌/‌systemd‌:控制系统服务状态(启动、停止、重启)‌。
  5. **高级功能类
    script‌:执行本地脚本并传递参数‌;
    raw‌:绕过模块系统直接发送原始命令(适用于无 Python 环境的主机)‌。

三、模块调用示例

通过命令行工具 ansible 或 Playbook 调用模块:


Copy Code
# 使用 ping 模块测试所有主机  
ansible all -m ping  

# 使用 yum 模块安装 httpd  
ansible web_servers -m yum -a "name=httpd state=present"  

# 使用 copy 模块传输文件  
ansible db_servers -m copy -a "src=/etc/my.cnf dest=/etc/my.cnf"  

四、模块扩展性

Ansible 支持数千个官方及社区维护的模块,可通过 ansible-doc -l 查看完整列表,或自定义开发模块满足特定需求‌。

你可能感兴趣的:(Ansible,Python,devops,经验分享,ansible,运维开发,自动化)