2016-10-12 2 views
0

boto.vpc를 사용하여 아마존 VPC의 내용을 확인하려고합니다. 그러나 서브넷의 내용을 검증하는 대신 서브넷의 내용을 작성하려고합니다. 나는 init.sls 파일의 기존 서브넷의 세부 사항 주었다소금 스택 boto.vpc 다른 서브넷과 서브넷 충돌을 만들지 못했습니다.

Ensure VPC exists: 
    boto_vpc.present: 
     - name: dlab 
     - cidr_block: 10.xx.xx.0/24 
     - dns_hostnames: True 
     - region: us-east-1 
     - keyid: keyid 
     - key: key 

Ensure subnet exists: 
    boto_vpc.subnet_present: 
     - name: dlab 
     - vpc_id: vpc-xxxxxxx 
     - cidr_block: 10.xx.xx.0/24 
     - region: us-east-1 
     - keyid: keyid 
     - key: key 

을 내가 명령을 실행할 때, 이것은 내가 얻을 결과 다음 VPC는 ​​

[[email protected] get_vpc]# salt '*' state.apply 
salt.localdomain: 
---------- 
      ID: Ensure VPC exists 
    Function: boto_vpc.present 
     Name: dlab 
     Result: True 
    Comment: VPC present. 
    Started: 14:36:19.166569 
    Duration: 312.981 ms 
    Changes: 
---------- 
      ID: Ensure subnet exists 
    Function: boto_vpc.subnet_present 
     Name: dlab 
     Result: False 
    Comment: Failed to create subnet: Bad Request: The CIDR '10.60.58.0/24' conflicts with another subnet 
    Started: 14:36:19.479896 
    Duration: 355.565 ms 
    Changes: 

Summary for salt.localdomain 
------------ 
Succeeded: 1 
Failed: 1 
------------ 
Total states run:  2 
Total run time: 668.546 ms 
ERROR: Minions returned with non-zero exit code 

를 확인은. 그러나 소금은 새로운 서브넷을 만들기 위해 노력하고 있습니다. 서브넷 존재 확인 아래의 최상위 파일에 지정된 서브넷 이름이 맞습니다!

왜 이런 일이 발생합니까? 서브넷을 만들기보다는 소금을 어떻게 얻을 수 있습니까? 나는이 솔루션을 제안

답변

0

, 나는 그것을 테스트하지 않은하지만 당신은 subnet_id이 있다면 당신은 그것을 사용

Ensure subnet exists: 
    module.run: 
     - name: boto_vpc.subnet_exists 
     - subnet_id: subnet-foo-id 

서브넷이있는 경우이 모듈은 확인 할 수 있습니다. 서브넷이 있으면 True를 반환하고 그렇지 않으면 False를 반환합니다. docs

에 따라
관련 문제