Ansible 通过调用平台能力实现扩容:Azure VMSS 用 azure_rm_autoscale 模块设实例数与指标策略;LVM 扩容需依次添加 PV、扩 LV、调整文件系统、更新挂载;VMware 扩容通过克隆模板并批量配置;OpenStack(Kolla-Ansible)扩容只需在 inventory 新增计算节点并重部署。

Ansible 本身不直接“扩容”,而是通过调用平台能力或执行底层操作来实现扩容——关键在于明确扩容对象:是云资源(如 Azure VMSS)、存储(如 LVM 逻辑卷),还是虚拟化环境(如 VMware 虚拟机)。
针对云平台(如 Azure VMSS)的自动扩容
在 Azure 中,扩容指调整虚拟机规模集(VMSS)的实例数量。Ansible 通过 azure_rm_autoscale 模块定义自动扩缩容策略,支持按计划或指标触发:
- 定义最小、最大和默认实例数,防止无限制增长或服务中断
- 设置周期性规则:例如每周一上午 10:00 固定扩容至 3 台(
count: '3') - 也可配置基于 CPU、内存等指标的动态伸缩,需配合
rules字段定义阈值与动作 - 所有操作面向
Microsoft.Compute/virtualMachineScaleSets资源,无需手动启停实例
针对本地存储(LVM)的逻辑卷扩容
当磁盘空间不足时,可通过 Ansible 扩容逻辑卷(LV),整个流程包含四步,缺一不可:
- 先向卷组(VG)添加新物理卷(PV),例如
ansible test -m lvg -a "vg=myvg pvs=/dev/sdb2" - 再扩大逻辑卷大小:
ansible test -m lvol -a "vg=myvg lv=mylv size=4G" - 接着对文件系统重设大小:xfs 类型必须用
resizefs模块,ext4 可用filesystem模块的resize参数 - 最后确保挂载点同步更新,mount 模块的
state: mounted会写入/etc/fstab并生效
针对虚拟化平台(如 VMware)的虚拟机扩容
Ansible 可编排整个虚拟机生命周期,扩容常体现为新增同类虚拟机并完成初始化配置:
- 使用 community.vmware.vmware_guest 模块克隆模板、指定 CPU/内存/磁盘参数
- 批量部署后,通过
setup或package模块统一安装软件、配置服务 - 结合
when条件判断环境变量,实现不同集群差异化扩容(如测试环境扩 2 台,生产扩 5 台) - 扩容后的机器可自动加入负载均衡池或配置中心,形成闭环
针对 OpenStack(Kolla-Ansible)的弹性扩容
Kolla-Ansible 将 OpenStack 组件容器化,扩容计算节点即部署新节点并纳管进集群:
- 在
multinodeinventory 文件中新增计算节点 IP 和角色([computes]) - 运行
kolla-ansible deploy时,工具自动识别新增节点并拉取镜像、配置服务 - 无需手动修改数据库或重启控制节点,Nova 会自动发现新 hypervisor
- 后续还可通过调整
nova.conf中的cpu_allocation_ratio等参数优化资源调度

















