저는 Ansible을 사용하여 작업 중 하나로 다양한 플레이북을 포함하는 플레이북을 만들려고 합니다.
명확히 말하면 이 플레이북은 Linux 서버를 배포하기 위한 것이며 단계 중 하나는 git 저장소를 복제하는 것입니다.
가져올 때( import_tasks
, include_tasks
및 import_playbook
을 사용해 보았습니다 include_playbook
) Ansible은 다음 오류를 반환합니다.
ERROR! conflicting action statements: hosts, gather_facts
물론, git 플레이북을 편집하고 명령문을 원격으로 실행하면 hosts
가져오기가 문제 없이 작동합니다.
그러나 git clone은 (해당 저장소를 동기화 상태로 유지하기 위해) 독립적으로 실행되어야 하므로 hosts
해당 지시문도 포함되어야 합니다.
저는 본질적으로 플레이북을 가져온 호스트가 아닌 플레이북을 가져온 호스트를 사용하여 플레이북 작업을 가져오는 방법을 찾고 있습니다.
간단히 git 플레이북에서 호스트 지시문을 제거하고 다른 플레이북을 통해 호출할 수 있지만 더 쉬운 방법이 있는지 궁금하거나 올바른 구문이 누락되었을 수도 있습니다.
호스트 없이 플레이북의 작업을 가져오는 쉬운 방법이 있나요?
감사해요!
답변1
hosts:
그리고 gather_facts:
극의 꼭대기에만 존재할 수 있다.
당신은해야
- 대상 서버에 연결하는 역할로 플레이북을 작성하세요.
- 충돌하는 문을 제거하고
delegate_to:
플레이북 작업을 포함할 때 사용하세요.