我真的很感謝從正確的寄存器中選擇數據的一些幫助。 以下代碼差不多工作... :)從Ansible寄存器中選擇特定的數據
我在這裏創建AWS VPC,我在'vpc'中註冊信息。 然後我參考vpc。
- name: Create VPC and Subnets
ec2_vpc:
state: present
cidr_block: '{{ ip-range}}'
resource_tags: { "Name": "{{ vpc_name }}" }
region: '{{ region }}'
subnets:
- cidr: '{{ pub-subneta }}'
az: '{{ region }}a'
resource_tags: { "Name": "Public Subnet 1" }
- cidr: '{{ pub-subnetb }}'
az: '{{ region }}b'
resource_tags: { "Name": "Public Subnet 2" }
- cidr: '{{ priv-subnet1 }}'
az: '{{ region }}a'
resource_tags: { "Name": "Private Subnet 1" }
- cidr: '{{ priv-subnet2 }}'
az: '{{ region }}b'
resource_tags: { "Name": "Private Subnet 2" }
internet_gateway: True
register: vpc
這很好。它使用4個子網創建VPC。 那麼我想在我試圖specifiying子網如下做特定子網啓動NAT實例:
- name: Create NAT instance
ec2:
state: present
key_name: '{{ ssh_key_name }}'
instance_type: '{{ nat_instance_type }}'
image: '{{ nat_ami }}'
region: '{{ region }}'
wait: yes
instance_tags:
Name: "natsrv01"
Description: "NAT Server"
assign_public_ip: yes
source_dest_check: false
vpc_subnet_id: '{{ vpc.subnets[0].id }}'
這是它的意圖不工作。 我假定寄存器將按照它定義/創建的順序包含信息,但事實並非如此。
使用調試我可以看到4個子網在寄存器中是隨機的順序。例如在一次嘗試中,「Public Subnet 2」被「vpc.subnets [0] .id」識別,而另一次嘗試「private Subnet 2」是列表中的第一個。
有人可以建議我怎麼能可靠地&反覆從寄存器中選擇「公共子網1」?
VPC寄存器的完整輸出:
ok: [localhost] => {
"vpc": {
"changed": true,
"invocation": {
"module_args": "",
"module_name": "ec2_vpc"
},
"subnets": [
{
"az": "eu-west-1b",
"cidr": REDACTED,
"id": "subnet-REDACTED",
"resource_tags": {
"Name": "Private Subnet B"
}
},
{
"az": "eu-west-1c",
"cidr": REDACTED,
"id": "subnet-REDACTED",
"resource_tags": {
"Name": "Private Subnet C"
}
},
{
"az": "eu-west-1a",
"cidr": REDACTED,
"id": "subnet-REDACTED",
"resource_tags": {
"Name": "Public Subnet A"
}
},
{
"az": "eu-west-1c",
"cidr": REDACTED,
"id": "subnet-REDACTED",
"resource_tags": {
"Name": "Public Subnet C"
}
},
{
"az": "eu-west-1b",
"cidr": REDACTED,
"id": "subnet-REDACTED",
"resource_tags": {
"Name": "Public Subnet B"
}
},
{
"az": "eu-west-1a",
"cidr": REDACTED,
"id": "subnet-REDACTED",
"resource_tags": {
"Name": "Private Subnet A"
}
}
],
"vpc": {
"cidr_block": "REDACTED",
"dhcp_options_id": "dopt-53eb0f36",
"id": "vpc-REDACTED",
"region": "eu-west-1",
"state": "pending"
},
"vpc_id": "vpc-REDACTED"
}
}
您可以發佈變量'vpc'的全部內容?例如添加任務' - 調試:var = vpc' – Kashyap
謝謝Kashyap。 我已經用vpc的完整輸出更新了原來的問題。 – Ansiballer