ansible 是无代理、基于 ssh 的批量管理工具,核心三步:安装配置 ssh 免密实现连接,用 inventory 分组管理主机,通过 playbook 或 ad-hoc 命令执行任务。

Ansible 是一个无代理、基于 SSH 的批量管理工具,用它管理几十台甚至几百台服务器,不需要在目标机装任何软件,只要能连上 SSH 就能开始操作。核心就三件事:连得上、分得清、跑得对。
第一步:装好 Ansible 并配好连接
在你用来发命令的那台机器(控制节点)上安装 Ansible:
- Ubuntu/Debian:
sudo apt update && sudo apt install ansible -y - CentOS/RHEL:
sudo yum install epel-release -y && sudo yum install ansible -y
接着配置 SSH 免密登录——这是批量操作不卡壳的前提:
- 在控制节点运行
ssh-keygen生成密钥(一路回车) - 用
ssh-copy-id user@目标IP把公钥推到每台目标服务器 - 验证是否通:运行
ansible all -m ping,看到 “SUCCESS” 就说明连通正常
第二步:用 Inventory 分组管理服务器
Inventory 是 Ansible 的“主机名单”,默认路径是 /etc/ansible/hosts,也可以自定义文件(比如 hosts.ini)。写法很直观:
[web] 192.168.1.10 192.168.1.11 <p>[db] 192.168.1.20 ansible_user=deploy</p>
支持变量嵌入,比如给某台机器单独指定端口或用户;也支持范围写法:web[01:05].example.com 表示 web01 到 web05。
用 ansible-inventory --graph 可快速查看分组结构,避免手误写错组名。
宝塔面板11.3.0是一款针对Linux服务器设计的可视化管理工具,通过重构核心模块实现资源占用显著降低,尤其适合低配置服务器环境。它将复杂的命令行操作转化为直观的图形界面,帮助开发者快速完成网站部署、环境配置及日常运维工作,无需专业技术背景即可高效管理服务器。
第三步:用 Playbook 批量执行任务
Playbook 是 YAML 格式的“操作剧本”,比临时命令更可靠、可复用。例如部署 Nginx:
---
- name: 部署 Web 服务
hosts: web
become: yes
tasks:
- name: 安装 nginx
ansible.builtin.package:
name: nginx
state: present
<pre class="brush:php;toolbar:false;">- name: 启动并启用服务
ansible.builtin.service:
name: nginx
state: started
enabled: yes
保存为 deploy.yml,执行:ansible-playbook -i hosts.ini deploy.yml。
常见实用技巧:
- 跨系统兼容:用
when: ansible_os_family == "Debian"区分 Ubuntu 和 CentOS 操作 - 批量改配置:用
lineinfile模块修改/etc/ssh/sshd_config关闭密码登录 - 传文件或模板:用
copy或template模块下发统一配置
第四步:从 ad-hoc 命令快速上手
别急着写 Playbook,先用简单命令验证和调试:
-
ansible web -m shell -a "uptime":查所有 web 机负载 -
ansible db -m apt -a "name=postgresql state=present" -b:在数据库组装 PostgreSQL(-b 表示提权) -
ansible all -m copy -a "src=./backup.sh dest=/tmp/":批量传脚本
这些命令即时生效,适合巡检、紧急修复或小范围调整,是日常高频操作入口。










