You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让Ansible通过名称或标签发现指定ECS集群对应的EC2实例

Ansible 自动发现ECS集群关联EC2实例配置方案

前置准备

  • 安装基础依赖包:
pip install boto3 ansible
  • 安装Ansible AWS官方集合:
ansible-galaxy collection install amazon.aws
  • 配置AWS访问凭证:可通过~/.aws/credentials文件或者环境变量AWS_ACCESS_KEY_ID、AWS_SECRET_ACCESS_KEY配置,对应IAM用户需拥有ec2:DescribeInstances权限。

步骤1:创建动态清单配置文件

新建名为aws_ec2.yaml的配置文件,内容如下:

plugin: amazon.aws.aws_ec2
# 配置你的AWS区域,多个区域可以用列表形式填写
regions:
  - cn-north-1
# 过滤规则,匹配ECS集群对应的EC2实例
filters:
  # ECS默认会给集群内EC2实例打标签aws:ecs:clusterName,值为集群名称,直接匹配即可
  tag:aws:ecs:clusterName: "你的ECS集群名称"
  # 若你使用自定义标签标记集群实例,替换为对应的标签键值即可,示例:
  # tag:自定义集群标签键: "自定义集群标签值"
# 可选配置:按实例标签自动生成分组,方便后续按分组调用
keyed_groups:
  - key: tags['aws:ecs:clusterName']
    prefix: ecs_cluster

步骤2:验证动态清单有效性

执行以下命令验证是否能正确获取到集群下的所有EC2实例:

ansible-inventory -i aws_ec2.yaml --list

输出内容中会列出所有匹配过滤规则的EC2实例的元数据信息,确认实例列表正确即可。

步骤3:使用动态清单执行Ansible操作

示例:对集群内所有实例执行ping检测:

ansible all -i aws_ec2.yaml -m ping

如果配置了keyed_groups,也可以使用自动生成的分组名调用,比如集群名称为prod-cluster,分组名就是ecs_cluster_prod_cluster,调用命令为:

ansible ecs_cluster_prod_cluster -i aws_ec2.yaml -m command -a "uptime"

内容的提问来源于stack exchange,提问作者Roman Newaza

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 23:57:02