You need to enable JavaScript to run this app. Ansible创建AWS VPC后如何动态获取VPC ID用于子网创建
优惠活动
大模型
产品
解决方案
定价
更多

Ansible创建AWS VPC后如何动态获取VPC ID用于子网创建

Ansible动态传递VPC ID实现方案

你只需要对现有playbook做两处小修改即可:

  1. 给创建VPC的任务添加register字段,将任务返回结果存储到自定义变量中。amazon.aws.ec2_vpc_net模块的稳定返回结构中,vpc.id字段就是创建好的VPC资源ID,该结构在Ansible 2.10及之后的AWS官方集合版本中通用,不存在过时问题。
  2. 子网创建任务的vpc_id参数直接引用上述变量即可,不需要手动复制硬编码。

完整修改后的代码示例如下:

---
- name: Create VPC 
  hosts: localhost
  tasks: 
  - name: create a VPC with default tenancy and a couple of tags
    amazon.aws.ec2_vpc_net:
      name: Ansible
      cidr_block: 10.0.0.0/16
      region: us-east-1
      state: present
      tags:
        Name: Ansible
        Team: DevOps
      tenancy: default
    register: created_vpc

  - name: Create subnet for database servers
    amazon.aws.ec2_vpc_subnet:
      state: present
      vpc_id: "{{ created_vpc.vpc.id }}"
      cidr: 10.0.1.16/28
      tags:
        Name: Database Subnet
    register: database_subnet

如果想要确认返回的变量结构是否符合预期,可以在VPC创建任务后临时加一行调试任务打印变量:

- debug:
    var: created_vpc

验证后删除调试任务即可。

内容的提问来源于stack exchange,提问作者Farrukh Sadykov

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.14 02:30:01