Olá, acabei de começar a aprender ansible. Estou tentando escrever um manual como:
vpc-setup.ymlque incluindo
hosts: localhost
connection: local
gather_facts: False
tasks:
- name: Import VPC Variables
include_vars: vars/vpc_setup.md
- name: Create vprofile VPC
ec2_vpc_net:
name: "{{vpc_name}}"
cidr_block: "{{vpcCidr}}"
region: "{{region}}"
dns_hostnames: yes
tenancy: default
state: "{{state}}"
register: vpcout
o erro está chegando na 1ª linha:
[WARNING]: provided hosts list is empty, only localhost is available. Note that the implicit localhost does not match
'all'
ERROR! A playbook must be a list of plays, got a <class 'ansible.parsing.yaml.objects.AnsibleMapping'> instead
The error appears to be in '/home/ubuntu/ansible-aws-vpc/vpc-setup.yml': line 1, column 1, but may
be elsewhere in the file depending on the exact syntax problem.
The offending line appears to be:
hosts: localhost
^ here
Por favor ajude
Responder1
Um playbook Ansible é um documento YAML que contém uma lista de peças, possivelmente mais de uma. Por ser uma lista, a parte externa do documento precisa da notação de lista YAML, portanto -
.
- name: VPC for thing
hosts: localhost
gather_facts: False
tasks:
O resto da peça segue.
Mais exemplos no Ansibleguia de apresentação de playbooks. Preste muita atenção ao recuo e ao exterior -
indicando uma lista YAML.
Dicas bônus:
name
palavra-chave em peças documenta um propósito. Mantenha o nome curto, com 50 caracteres ou menos.
Exclua connection: local
no nível do jogo. Se executado em um padrão com vários hosts, ele será executado muitas vezes, o que é improvável que você queira.Host local implícitojá é local ou você pode definir o plug-in de conexão por host ou grupo no nível do inventário.