안녕하세요 저는 이제 막 앤서블을 배우기 시작했습니다. 나는 다음과 같이 플레이북을 작성하려고 합니다.
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
플레이 레벨에서 삭제하세요 . 여러 호스트가 포함된 패턴에 대해 실행하면 여러 번 실행되지만 원하는 결과가 나올 가능성은 거의 없습니다.암시적 로컬호스트이미 로컬이거나 인벤토리 수준에서 호스트 또는 그룹별로 연결 플러그인을 설정할 수 있습니다.