0

좋아 :복잡한 구조의 룩업 값이 가능합니까? 나는 내가 VPC에서 서브넷에 대한 사실을 등록 할 <code>ec2_vpc_subnet_facts</code>를 사용 Ansible 각본에서 일하고 있어요

- ec2_vpc_subnet_facts: 
    region: "{{ ec2_region }}" 
    filters: 
     vpc-id: "{{ vpc.vpc.id }}" 
    register: vpc_subnet_facts 

따라서 (제거 관련이없는 속성)과 같은 구조를 다시 가져 오는 :

"vpc_subnet_facts": { 
    "changed": false, 
    "subnets": [ 
     { 
      ... 
      "id": "subnet-0bb50753", 
      ... 
      "tags": { 
       "Name": "mytag1" 
      }, 
      ... 
     }, 
     { 
      ... 
      "id": "subnet-0bb50754", 
      ... 
      "tags": { 
       "Name": "mytag2" 
      }, 
      ... 
     } 
    ] 
} 

나중에 모바일 북에서 EC2 인스턴스를 만들 때 ec2 모듈 vpc_subnet_id 속성의 태그 값을 기반으로 서브넷 ID를 검색합니다. 즉 mytag1이 연결된 서브넷 ID subnet-0bb50753을 조회하는 것입니다.

현재 나의 접근 방식은 ec2_vpc_subnet_facts 결과에서 set_facts을 사용하여 tag => subnet-ID 사전을 만드는 것이지만 대안에 관심이 있습니다. 여기에서 이루어집니다 무엇

- debug: msg="{{ (vpc_subnet_facts.subnets | selectattr('tags.Name','equalto','mytag1') | first).id }}" 

이 :, 첫 번째 요소를 가지고, vpc_subnet_facts.subnetstags.Name=='mytag1'에서 요소의 부분 집합을 id 필드을

감사

, 올라

답변

3

selectattr 신사 필터는 여기에 당신의 친구입니다.

+0

안녕하세요 콘스탄틴, 솔루션 주셔서 감사합니다. 아주 좋아. –