ansible para crear vpc solicitando hosts

ansible para crear vpc solicitando hosts

Soy bastante nuevo en ansible y, al leer cosas, lo que estoy haciendo debería funcionar. Tengo el siguiente archivo llamadoaws.yml

---
- hosts: localhost
  connection: local
  gather_facts: no
  vars:
    aws_region: us-east-1
  tasks:
    - name: Main VPC
      ec2_vpc:
        state: present
        cidr_block: 10.5.0.0/16
        resource_tags: {"environment": "prod"}
        region: "{{ aws_region }}"
        dns_hostnames: no
        dns_support: yes
        instance_tenancy: default
        internet_gateway: yes
        subnets:
          - cidr: 10.5.151.96/27
            az:  "{{ aws_region }}a"
            resource_tags: {"Name": "private"}
          - cidr: 10.5.151.128/27
            az:  "{{ aws_region }}b"
            resource_tags: {"Name": "private"}
          - cidr: 10.5.151.160/27
            az:  "{{ aws_region }}c"
            resource_tags: {"Name": "private"}

Cuando ejecuto ansible-playbook sobre él, obtengo lo siguiente

$ ansible-playbook aws.yml
ERROR: Unable to find an inventory file, specify one with -i ?

Según tengo entendido, son los hosts: se supone que localhost reemplaza el uso de -i y como estoy intentando crear una VPC aquí, no quiero conectarme a las máquinas por ssh para construirla.

Gracias

Respuesta1

Debe señalar un archivo de inventario (incluso uno vacío), porque el libro de jugadas solo dice a qué hosts se aplica la jugada, pero no proporciona los medios para definir dicha lista, el inventario sí lo hace. Por suerte, localhostestá disponible por defecto:

$ cat playbook.yml
---
- hosts: localhost
  connection: local
  gather_facts: no
  tasks:
    - shell: echo foo

$ ansible-playbook -i /dev/null playbook.yml
 [WARNING]: provided hosts list is empty, only localhost is available

PLAY [localhost] **************************************************************

TASK: [shell echo foo] ********************************************************
changed: [localhost]

PLAY RECAP ********************************************************************
localhost                  : ok=1    changed=1    unreachable=0    failed=0

información relacionada