Создание и назначение общего IP-адреса для экземпляра EC2, созданного с помощью ansible - PullRequest
0 голосов
/ 07 марта 2019

при создании экземпляра AWS из playbook я пытался подключить эластичный ip к серверу.и я получаю эту ошибку.


fatal: [localhost]: FAILED!=> {"msg": "объект dict не имеет атрибута" instance_ids '"}, чтобы повторить попытку, используйте: --limit @ / home / ubuntu / aws.retry



  • имя: экземпляр экземпляра aws хосты: локальное соединение: локальный сбор_фактов: True переменные: os_image: ami-063aa838bd7631e0b расположение: us-west-1 pem: recepeeps-c vpc_subnet: subnet-fc5664a7 имя_сервера: sagar-test instance_type:t2.micro firewall_name: sagar description: sagar_test_rule count: 1

    Задачи:

      - name: ec2 security group
        ec2_group:
                name: "{{firewall_name}}"
                region: "{{location}}"
                description: "{{description}}"
                state: present
                rules:
                        - proto: tcp
                          from_port: 80
                          to_port: 80
                          cidr_ip: 0.0.0.0/0
    
                        - proto: tcp
                          from_port: 22
                          to_port: 22
                          cidr_ip: 0.0.0.0/0
    
                        - proto: tcp
                          from_port: 443
                          to_port: 443
                          cidr_ip: 0.0.0.0/0
    
        register: firewall
    
      - name: Debug firewall facts
        debug: msg="{{firewall}}"
    
    
      - name: creating AWS instance
        ec2:
                key_name: "{{pem}}"
                instance_type: "{{instance_type}}"
                region: "{{location}}"
                image: "{{os_image}}"
                termination_protection: no
                group_id: "{{firewall.group_id}}"
                wait: true
                count: "{{count}}"
                instance_tags:
                        Name: "{{server_name}}"
                        state: present
                vpc_subnet_id: "{{vpc_subnet}}"
                assign_public_ip: yes
    
        register: ec2
    
      - name: Debug EC2 facts
        debug: msg="{{ec2}}"
    
    
      - name: Providing a Static IP
        ec2_eip:
                in_vpc: yes
                reuse_existing_ip_allowed: yes
                region: "{{location}}"
                device_id: "{{ec2.instance_ids}}"
                wait_timeout: "20"
    

1 Ответ

0 голосов
/ 07 марта 2019

Ошибка ясна

"У объекта dict нет атрибута instance_ids"

, когда вы пытаетесь использовать его

    device_id: "{{ ec2.instance_ids }}"

Вы зарегистрировались и напечатали ec2

  register: ec2
- name: Debug EC2 facts
  debug: msg="{{ ec2 }}"

Посмотрите, где находится instance_ids , или отправьте сообщение ec2 .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...