温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

怎样用Ansible批量管理服务器

发布时间:2026-09-21 07:23:55 来源:亿速云 阅读:99 作者:小樊 栏目:系统运维

下面从概念 → 架构 → 实战步骤 → 常用场景给你一个清晰、可落地的 Ansible 批量管理服务器指南。


一、Ansible 是什么(为什么适合批量管理)

Ansible 是 无 agent(无客户端) 的自动化运维工具:

  • 通过 SSH 管理服务器
  • 使用 YAML 剧本(Playbook) 描述任务
  • 支持 批量执行命令、配置、部署、补丁

✅ 适合:

  • 几十到上千台服务器
  • 配置统一、软件部署、运维自动化

二、基本架构

控制节点(Ansible)
      ↓ SSH
+-------------------+
|  Web1  Web2  Web3 |
|  DB1   DB2        |
+-------------------+
  • 控制节点:装 Ansible 的机器(通常是运维机)
  • 被控节点:被管理的服务器(无需安装 Agent)

三、安装 Ansible(控制节点)

CentOS / Rocky / Alma

yum install -y epel-release
yum install -y ansible

Ubuntu

apt update
apt install -y ansible

验证:

ansible --version

四、配置主机清单(Inventory)

示例:/etc/ansible/hosts

[web]
192.168.1.10
192.168.1.11

[db]
192.168.1.20

[all:vars]
ansible_user=root
ansible_ssh_private_key_file=~/.ssh/id_rsa

✅ 支持分组、变量、密码(不推荐)


五、测试连通性

ansible all -m ping

成功示例:

192.168.1.10 | SUCCESS => {"ping": "pong"}

六、批量执行命令(Ad-Hoc)

查看所有服务器负载

ansible all -m shell -a "uptime"

批量安装 nginx

ansible web -m yum -a "name=nginx state=present"

批量重启服务

ansible web -m service -a "name=nginx state=restarted"

七、使用 Playbook(重点)

示例:安装并启动 Nginx

deploy_nginx.yml

- hosts: web
  become: yes
  tasks:
    - name: Install nginx
      yum:
        name: nginx
        state: present

    - name: Start nginx
      service:
        name: nginx
        state: started
        enabled: true

执行:

ansible-playbook deploy_nginx.yml

八、批量管理常见场景

1️⃣ 批量用户管理

- name: Create user
  user:
    name: deploy
    groups: wheel
    shell: /bin/bash

2️⃣ 批量分发文件

- copy:
    src: ./nginx.conf
    dest: /etc/nginx/nginx.conf

3️⃣ 批量执行脚本

- script: ./init.sh

4️⃣ 按角色管理(推荐)

[web]
web1
web2

[db]
db1
- hosts: web
  roles:
    - nginx

- hosts: db
  roles:
    - mysql

九、最佳实践建议

✅ 使用 SSH 密钥 而非密码
✅ 按 环境 / 角色 分组
✅ Playbook 版本化(Git)
✅ 使用 ansible-vault 管理密码
✅ 小步测试 → 全量执行


十、学习路径建议

  1. Ad-Hoc 命令
  2. Playbook
  3. 变量 & 模板(Jinja2)
  4. Role
  5. Ansible Vault
  6. AWX / Ansible Tower(可视化)

如果你愿意,我可以:

  • 给你一套 生产级目录结构
  • 写一个 完整 Web 集群管理示例
  • 或针对 CentOS / Ubuntu / 云服务器 定制方案

你目前是想管 多少台服务器 / 什么系统

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI