Ansible快速入门指南

Ansible 是一款基于 Python 开发的开源自动化运维工具,主要用于实现服务器配置管理、应用部署、任务自动化执行等功能。它通过 简单的 YAML 脚本(Playbook) 定义任务,结合 SSH 协议 对远程主机进行管理,无需在被控节点安装额外代理程序,具有轻量、易上手、模块化等特点。

  • 优势:
    • 无代理架构,远程主机无需安装代理,只需在控制主机上部署;
    • YAML 语法简洁,易读易维护;
    • 社区活跃,模块丰富(支持云计算、容器化等新兴技术)。

一、Ansible 核心概念与组件

  1. Modules(模块)
    • 是 Ansible 的执行单元,封装了具体操作(如文件管理、系统配置、服务控制等)。
    • 分为内置模块(如 shellcopyyum)和自定义模块,通过 SSH 推送至被管理节点执行。
    • 如:selinux 模块用于配置 SELinux 模式,copy 模块用于文件拷贝。

常用模块:

模块名称 功能描述 示例代码
command 执行 shell 命令(不支持 $ 符号) ansible all -m command -a “date”
shell 执行 shell 命令(支持脚本) ansible all -m shell -a “sh /script.sh”
copy 复制文件到远程主机 copy: src=/local/file dest=/remote/file
yum/apt 软件包管理 yum: name=nginx state=latest
service 管理系统服务 service: name=nginx state=restarted
  1. Inventory(主机清单)
    • 定义被管理主机的分组、IP/域名、连接参数(如端口、用户、密码)。
    • 默认路径:/etc/ansible/hosts,支持分组嵌套和变量继承。
    • 格式示例
#可以按照范围指定主机,一组相似的hostname []是匹配
[webservers]
www[01:50].example.com   # 批量定义主机
[dbservers]
db-[a:f].example.com     # 范围匹配
  1. Playbook(剧本)
    • 自动化任务的脚本,以 YAML 格式定义任务流程,支持变量、条件判断和循环。
    • 示例
- hosts: webservers
  tasks:
  - name: 安装 Nginx
    yum: name=nginx state=present
  - name: 启动服务
    service: name=nginx state=started
  1. Roles(角色)
    • 用于组织和复用 Playbook,将任务按功能拆分为独立目录(如 nginx 角色包含安装、配置、启动任务)。
  • 目录结构:

                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值