홈>
다음과 같은 구술이 있습니다 :
endpoint:
esxi_hostname: servername.domain.com
vmware_guest에 대해 jinja2를 통해 옵션으로 사용하려고했지만 실패했습니다. 이 방법으로 시도하는 이유는 dict가 동적이기 때문입니다. clustername 또는 esxi_hostname : hostname이며 vmware_guest 모듈에서 상호 배타적 일 수 있습니다.
다음은이를 모듈에 제시하는 방법입니다 :
- name: Create VM pysphere
vmware_guest:
hostname: "{{ vcenter_hostname }}"
username: "{{ username }}"
password: "{{ password }}"
validate_certs: no
datacenter: "{{ ansible_host_datacenter }}"
folder: "/DCC/{{ ansible_host_datacenter }}/vm"
"{{ endpoint }}"
name: "{{ guest }}"
state: present
guest_id: "{{ osid }}"
disk: "{{ disks }}"
networks: "{{ niclist }}"
hardware:
memory_mb: "{{ memory_gb|int * 1024 }}"
num_cpus: "{{ num_cpus|int }}"
scsi: "{{ scsi }}"
customvalues: "{{ customvalues }}"
cdrom:
type: client
delegate_to: localhost
과제 파일을 포함시킬 때 발생하는 오류는 다음과 같습니다.
TASK [Preparation : Include VM tasks] *********************************************************************************************************************************************************************************
fatal: [10.10.10.10]: FAILED! => {"reason": "Syntax Error while loading YAML.
The error appears to have been in '/data01/home/hit/tools/ansible/playbooks/roles/Preparation/tasks/prepareVM.yml': line 36, column 4, but may
be elsewhere in the file depending on the exact syntax problem.
The offending line appears to be:
"{{ endpoint }}"
hostname: "{{ vcenter_hostname }}"
^ here
We could be wrong, but this one looks like it might be an issue with
missing quotes. Always quote template expression brackets when they
start a value. For instance:
with_items:
- {{ foo }}
Should be written as:
with_items:
- "{{ foo }}"
exception type: <class 'yaml.parser.ParserError'>
exception: while parsing a block mapping
in "<unicode string>", line 33, column 3
did not find expected key
in "<unicode string>", line 36, column 4"}
요약하면, 어떻게 포맷해야하는지 또는 가능한지 잘 모르겠습니다.
- 답변 # 1
관련 자료
- with_items를 사용하여 목록에 연결할 수없는 jinja2
- jinja2에 대한 'Any'및 'all'필터 (Ansible)
- Ansible 모듈로 여러 파일 이름 바꾸기
- Anmible yaml 앵커 및 jinja2 템플릿
- dictionary - Ansible/Jinja2는 list-item 내의 변수 키가 동일한 dict임을 나타냅니다
- loops - jinja2의 가능한 출력에서 데이터 정렬
- automation - 사용 가능한 라인 파일 모듈의 속성 라인이 서버에 환경 변수를 추가하지 않습니다
- IntelliJ Idea Ultimate에서 모듈을 변경할 때 FTP 배포 옵션이 표시되지 않습니다
- ubuntu - 자식 모듈을 추가 할 수없는 모듈 - "w : gpg 오류 :no_pubkey"오류
- yaml - inventory_hostname이 변수 트리의 최상위 인 경우 목록을 반복하는 Ansible Jinja2 문제
- 조회 가능한 변수로 jinja2 템플릿 사용
- group - csv 파일과 함께 jinja2를 사용하여 ansible-playbook을 생성해야합니다
- csv 파일과 함께 jinja2를 사용하여 ansible-playbook을 생성해야합니다
- ansible에 대한 jinja2 템플릿의 조건
- jinja - 이 jinja2 Filter는 Ansible에서 무엇을합니까? 디({})
- 모든 필수 Azure 모듈 설치 가능
관련 질문
- Anmible yaml 앵커 및 jinja2 템플릿
- 인벤토리 파일의 그룹 값을 ansible의 jinja2 템플릿 파일에 전달하는 방법
- jinja2 ansible에서 중첩 된 사전을 변수로 저장하려면 어떻게해야합니까?
- ansible - 중첩 된 dict에 루프
- with_items를 사용하여 목록에 연결할 수없는 jinja2
- ansible - J2 템플릿에서 호스트 이름을 사용하는 방법은 무엇입니까? 시도하는 동안 약간의 오류가 발생했습니다
- ansible - jinja2 템플릿을 포함하지 않아야 할 때
- ansible - Jinja2에서 중첩 객체 추출
- jinja2 - 가능 - 인벤토리 호스트 이름에서 정의 된 변수 목록의 항목 목록
- jinja2 - Ansible에서 ipaddr로 객체 목록 필터링
techraf의 게시물이 문제를 요약하지만 가능한 해결책, 특히 Jinja 필터와 관련된 문서의 경우 다음과 같은 비트가 있습니다.
와이즈 비즈 와이즈 비즈목록의 처음 두 파일의 경우 기본 모드는 mode = 매개 변수는 시스템의 umask에 의해 결정되지 않습니다. 최종 파일이 파일 모듈을받는 동안 파일 모듈로 전송됩니다. mode = 0444 옵션.
시도해야 할 것 같습니다 :