Ansible 剧本错误

Ansible 剧本错误

嗨,我刚刚开始学习 ansible。我正在尝试编写剧本如下:

vpc-setup.yml其中包括

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

错误出现在第一行:

[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

请帮忙

答案1

Ansible 剧本是一个 YAML 文档,其中包含剧本列表(可能不止一个)。由于它是一个列表,因此文档的外部需要 YAML 列表符号,因此-

- name: VPC for thing
  hosts: localhost
  gather_facts: False
  tasks:

该剧的其余部分如下。

Ansible 中的更多示例剧本介绍指南。请特别注意缩进,以及外部-指示的 YAML 列表。


额外提示:

name关键字用于说明目的。名称尽量简短,不超过 50 个字符。

在游戏级别删除connection: local。如果针对具有多个主机的模式运行,它将运行多次,这不太可能是您想要的。隐式 localhost已经是本地的,或者您可以在库存级别设置每个主机或组的连接插件。

相关内容